Laden...

Forenbeiträge von Foermchen82 Ingesamt 101 Beiträge

11.07.2014 - 17:12 Uhr

Hallo zusammen,

ich stehe gerade vor der Aufgabe, dass ich eine C# DLL in ein VBA Projekt einbinden und verwenden soll.

Soweit so gut.

Ich kann bereits in VBA C# Klassen instantizeren und Methoden auf diesen aufrufen. Auch kann ich die Rückgabewerte verarbeiten.

Jetzt stehe ich aber vor der Aufgabe, dass ich in VBA auf Events aus der DLL reagieren soll.

Hier bin ich bisher gescheitert. Ich weiß, dass ich eine Instanz mit "WithEvents" in VBA erzeugen muss. Jedoch gelingt mir das nicht, da mit immer die Fehlermeldung kommt > Fehlermeldung:

Objekt löst keine Automatisuerungsereignisse aus

Daher die Grundlegende Frage: Wie muss ich hierzu meine C# Klasse Definieren(Attribute, Events, Delegates, Methoden, ...) und wie muss ich Sie dann in VBA instanzieren damit das klappt?

Danke für eure Hilfe.

08.09.2011 - 13:18 Uhr

Hallo zusammen,

Die Unterschiede zwischen den einzelnen MS SQL Server Editionen kann man sehr gut über die MS-Webseite heraus bekommen. Jedoch beschränken sich diese Unterschiede hauptsächlich auf die Tool und die Ressourcen.

Kann mir jedoch jemand erklären, ob es auch Unterschiede in der eigentlichen Datenbank gibt?

D.h. läuft eine DB (mit Tabellen, Funktionen, Trigger, StoredProcedures usw.) aus der z.b. Enterprise Edition auch in der Expressedition und umgekehrt?

Vielen Dank im Voraus!

07.09.2011 - 16:43 Uhr

Über Sinn und Unsinn der Möglichkeit ein Interface direkt zu instanzieren möchte ich jetzt nicht philosophieren.
Mir ging es erstmal nur darum, ob es auch möglich ist.

Aber dem ist wohl nicht so.

danke für die Antworten

07.09.2011 - 12:04 Uhr

Weil es manchmal ganz nützlich ist. In Java z.b. für Listenerhandling.

07.09.2011 - 11:57 Uhr

Hallo zusammen,

ich bin normalerweise in der Java-welt unterwegs, aber jetzt hab ich doch mal wieder ein C# Projekt bekommen.

Aus Java kenne ich die Möglichkeit ein Interface zu instanzieren ohne eine konkrete Klasse zu verwenden und zwar so:



public interface MyInterfcae
{
   void myMethod();
} 


MyInterface object = new MyInterface()
{
   public void myMethod()
   {
      ...
   }
};

Wie bekomme ich das auch in C# hin?

Danke und viele Grüße,

10.08.2011 - 14:39 Uhr

Hallo zusammen,

ich habe mir mit XSD.exe ein Schema in C# übersetzt. Ein ComplexType hat dabei einen Default value.
daraus macht XSD.exe ein System.ComponentModel.DefaultValueAttribute.

Ich habe mal gelesen, dass bei der Objektserialisierung der defaultwert nicht mit ins XML geschrieben wird.

Jedoch finde ich den MSDN Eintrag nicht mehr. Ich finde lediglich etwas zu
XmlAttributes.XmlDefaultValue:

Wenn der einem Feld oder einer Eigenschaft zugewiesene Wert dem Standardwert des Felds oder der Eigenschaft entspricht, wird er von XmlSerializer nicht zur XML-Instanz serialisiert

Ich bräuchte jedoch eine Quelle, wo es für das DefaultValueAttribute dokumentiert ist. Kann mir da bitte einer helfen?

Vielen Dank!

21.07.2011 - 11:29 Uhr

Hallo zusammen,

ich gabe gerade leidlich erfahren müssen, dass einen unhandled Exception in einem Thread die ganze Anwendung abstürzen lässt.

Dazu habe ich 2 Fragen:

  1. Kann ich das irgendwie verhindern?
  2. Kann ich die Exception mir zumindest noch irgendwie sammt Stacktrace loggen?

Zur Zeit baue ich meinen ganzen Threads möglichst sicher. Aber ich möchte zumindest eine "letzte Verteidigungslinie haben".

Kann mir da einer helfen? Danke!

18.04.2011 - 15:31 Uhr

Problem gelöst:

Wenn ich die EXE nehme oder Debugge werden die umgebungsparameter verwendet. Auch der Proxy. Als dienst muss man ihn jedoch explizit setzen

18.04.2011 - 13:48 Uhr

Die Fehlermeldung ist klar. Sorry. hätte sie auch gleich mit posten können:

Fehlermeldung:
System.Net.WebException: Die Verbindung mit dem Remoteserver kann nicht hergestellt werden. ---> System.Net.Sockets.SocketException: Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht ordnungsgemäß reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat XXX.XXX.XXX.XX:XXX
bei System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
bei System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
bei System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
bei System.Net.HttpWebRequest.GetRequestStream()

hilft das weiter???

Den Timeout hoch zu setzten bringt auch nichts. Und wie gesagt, wenn ich die MAIN starte geht es ja auch. Also prinzipiell ist die Verbindung da

18.04.2011 - 13:26 Uhr

Hallo zusammen,

ich baue mir gerade eine Windows Dienst. Dieser soll auf das Internet zugreifen können. Für das Debuggen habe ich eine Main-Funktion eingebaut. Dmit klappt alles Super. Baue ich aber den Dienst und starte Ihn über "Services" bekomme ich keine Internet verbindung mehr. Als Service Account für den ProjektInstaller habe ich LocalSystem gewählt.

Wie schaffe ich es, dass ich auch als service zugriff auf das Internet erhalte?

Danke im voraus!

15.04.2011 - 17:33 Uhr

Hallo zusammen,

ich habe folgenden Code:


WebRequest request = WebRequest.Create("XYZ");
            request.Method = "POST";
            request.Timeout = 30000;
            Stream requestStream = request.GetRequestStream();

das holen des RequestStreams läuft bei mir in einen timeout. Jedoch schon nach 10 Sec. Ich habe doch aber 30 konfiguriert. Wieso wird das nicht verwendet.

Außerdem habe ich festgestellt, dass ich beim Debuggen den timeout nicht bekomme sondern nur im "echten" lauf. Woran kann das liegen.

Danke im voraus

15.04.2011 - 16:09 Uhr

Hast recht. Oh man wie peinlich!

Einmal hatte ich Sleep einkommentiert und einmal nicht

15.04.2011 - 15:49 Uhr

Hallo zusammen,

ich habe ein programm, welches mittels eines Threads ständig auf eine Queue zugreift.
Queue.Dequeue liefer eine Exeption wenn nichts drinn ist. Also wollte ich vorher mit Queue.Count prüfen.
Mein Thread läuft alle 5 sekunden.

Jetzt habe ich aber das problem, dass mein Programm mit 50% CPU läuft. kommentiere ich Queue.Count aus und verwernde stattdessen Queue.Dequeue mit try/Catch drum herum läuft das Programm nur noch mit 1%.

Kann mir das einer erklären??

Danke im voraus!

06.04.2011 - 13:28 Uhr

danke für die Antwort.

Es ist tatsächlich so, dass der Aufruf "GetRequestStream" die Zeit braucht. Das Schreiben an sich geht fix.

Also wird scheibar erst bei dem Aufruf die Verbindung initialisiert.
Da kann man dan wohl nichts machen.

Kann ich die Webrequest samt stream eiegntlich wieder verwenden, oder muss ich das jedes mal neu erzeugen wenn ich neue Requests durch führe????

Totzdem danke.

06.04.2011 - 12:58 Uhr

Nein ich hab mir direkt vor und nach dem Stream.write die Zeit ausgeben lassen.

06.04.2011 - 10:24 Uhr

Hallo zusammen,

ich habe folgenden Code:


            WebRequest request = WebRequest.Create("https://test.XYZ.com");
            request.Method = "POST";

            byte[] byteArray = StringToUTF8ByteArray(message);
            request.ContentLength = byteArray.Length;
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(byteArray, 0, byteArray.Length);

ich habe mit mit Consolen-Ausgaben mal auch Zeitausgaben gemacht, und habe festgestellt, dass das Stream.write immer zwischen 5 und 10 secunden dauert.

Wieso ist das so?? das Bytearray hat im Schnitt nur eine Länge von 230.

10 Sekunden finde ich schon etwas viel!

danke im Voraus

05.04.2011 - 07:59 Uhr

Hallo, das was du da siehst ist die
>

Dein Code sieht auch etwas verwirrend aus.. besonders der teil wo du auf den BaseStream drauf zugreifst.. das ist meist keine gute Idee.

Normalerweise brauchst Du den TextWriter und XmlTextWriter überhaupt nicht. Benutz einfach nur den XmlSerializer.. (es sei denn Du hast anforderungen die das nicht erlauben) Default ist da IMHO schon UTF8.

Gruß

So waren leider alle Beispiele gestrickt, die ich zur XML-Serialisierung in einen String gefunden habe. Hast du eine alternative?
Danke im Voraus!

04.04.2011 - 13:45 Uhr

habs gefunden:

Wenn ich die Encoding Instanz früher erstelle und die Instanz auch bei der instanzierung des XMLTextWriter verwende, dann klappt es.

Kann mir das aber bitte einer erklären?


MemoryStream memoryStream = new MemoryStream();
 UTF8Encoding encoding = new UTF8Encoding();
            XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, encoding );
            SerializerObj.Serialize(xmlTextWriter, TestObj);
           
            String constructedString = encoding.GetString(((MemoryStream)xmlTextWriter.BaseStream).ToArray());

04.04.2011 - 13:20 Uhr

Hallo zusammen,

ich habe folgenden Code:


public static void Main(string[] args)
        {
            TestClass TestObj = new TestClass();

            // Set some dummy values
            TestObj.SomeString = "foo";

            TestObj.Settings.Add("A");
            TestObj.Settings.Add("B");
            TestObj.Settings.Add("C");

            XmlSerializer SerializerObj = new XmlSerializer(typeof(TestClass));
            
            //serialize to file
            TextWriter WriteFileStream = new StreamWriter(@"C:\test.xml");
            SerializerObj.Serialize(WriteFileStream, TestObj);
            
            // serialize to string
            MemoryStream memoryStream = new MemoryStream();
            XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
            SerializerObj.Serialize(xmlTextWriter, TestObj);
            UTF8Encoding encoding = new UTF8Encoding();
            String constructedString = encoding.GetString(((MemoryStream)xmlTextWriter.BaseStream).ToArray());
            
            // Cleanup
            WriteFileStream.Close();
            Console.WriteLine(constructedString);
            Console.ReadLine();
        }

        [Serializable()]
        public class TestClass
        {
            private string someString;
            public string SomeString
            {
                get { return someString; }
                set { someString = value; }
            }

            private List<string> settings = new List<string>();
            public List<string> Settings
            {
                get { return settings; }
                set { settings = value; }
            }

            // These will be ignored
            [NonSerialized()]
            private int willBeIgnored1 = 1;
            private int willBeIgnored2 = 1;

        }

Die serialisierung in die Datei klappt wunderbar:


 <?xml version="1.0"?>
        <TestClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <SomeString>foo</SomeString>
          <Settings>
            <string>A</string>
            <string>B</string>
            <string>C</string>
          </Settings>
        </TestClass>	

Die Serialisierung in den String hat aber ein komisches Zeichen am Anfang:


?<?xml version="1.0" encoding="utf-8"?><TestClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SomeString>foo</SomeString><Settings><string>A</string><string>B</string><string>C</string></Settings></TestClass>

Das "?" ist scheinbar nur die Anzeige in der Windows Konsole. der ASCII Code dazu ist: 65279

Wieso ist das da vorangestellt? Lese ich den String dann wieder in ein XMLDocument ein klappt das natürlich nicht.
Was mach ich falsch?

Danke im Voraus

EDIT: Wenn ich auf ASCII-Encoding stelle klappt es, jedoch hab ich dann dass Problem mit Umlauten. Deswegen würde ich gerne UTF-8 nehmen

21.02.2011 - 11:11 Uhr

ich habe diese Beitrag gelöscht, da ich den obigen ergänzt habe. Das Problem ist jedoch noch offen!!

14.02.2011 - 15:24 Uhr

Ah, ok.

Also brauche ich in C# hier nichts weiter zu tun, als die HTTPS-Seite aufzurufen.

Ich war mir nicht ganz sicher, ob das Hand-Shake-Verfahren (so heißt das glaube ich) selbst implementiert werden muss, oder ob .Net das übernimmt.

Danke!

14.02.2011 - 10:06 Uhr

Hallo,,
wenn ich zu einer Webseite eine HTTPS Verbindung Aufbaue in der Art:


WebRequest requHtml = WebRequest.Create("https://...");

Das Zertifikat ist hierbei Trusted, und ein Login wird über einen Speziellen Request gesteuert.

Ist die Datenübertragung dann automatisch durch das Zertifikat verschlüsselt, oder muss ich hier noch manuell etwas tun?

Vielen Dank im voraus und viele Grüße

03.02.2011 - 12:52 Uhr

Hallo zusammen,

ich habe ein XSD, als welchem ich mittels xsd.exe C#-Klassen erzeuge. Diese sehen so aus:


//------------------------------------------------------------------------------
// <auto-generated>
//     Dieser Code wurde von einem Tool generiert.
//     Laufzeitversion:2.0.50727.3615
//
//     Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
//     der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// Dieser Quellcode wurde automatisch generiert von xsd, Version=2.0.50727.42.
// 
namespace TypeTest {
    using System.Xml.Serialization;
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlRootAttribute("TypeTest", Namespace="", IsNullable=false)]
    public partial class TypeTestMessage : SuperMessage {
        
        private ChoiceType1 itemField;
        
        private ItemChoiceType itemElementNameField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Choice1", typeof(ChoiceType1))]
        [System.Xml.Serialization.XmlElementAttribute("Choice2", typeof(ChoiceType2))]
        [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")]
        public ChoiceType1 Item {
            get {
                return this.itemField;
            }
            set {
                this.itemField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public ItemChoiceType ItemElementName {
            get {
                return this.itemElementNameField;
            }
            set {
                this.itemElementNameField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class ChoiceType1 {
        
        private int[] elementField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Element")]
        public int[] Element {
            get {
                return this.elementField;
            }
            set {
                this.elementField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class ChoiceType2 {
        
        private int[] elementField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Element")]
        public int[] Element {
            get {
                return this.elementField;
            }
            set {
                this.elementField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TypeTestMessage))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SuperMessage {
        
        private int idField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int id {
            get {
                return this.idField;
            }
            set {
                this.idField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(IncludeInSchema=false)]
    public enum ItemChoiceType {
        
        /// <remarks/>
        Choice1,
        
        /// <remarks/>
        Choice2,
    }
}

Das XSD sieht so aus:


<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:d="http://www.w3.org/1999/xhtml" xmlns:info="urn:ipmamatch:info-elements" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" elementFormDefault="qualified">

	<xsd:complexType name="SuperMessage">
		<xsd:attribute name="id" type="xsd:int" use="required"/>
	</xsd:complexType>
	
	<xsd:element name="TypeTest" type="TypeTestMessage"></xsd:element>
	
	<xsd:complexType name="TypeTestMessage"><xsd:complexContent>
		<xsd:extension base="SuperMessage">
		<xsd:sequence>

			<xsd:choice>
			<xsd:element name="Choice1" minOccurs="0" type="ChoiceType1"></xsd:element>

			<xsd:element name="Choice2" minOccurs="0" type="ChoiceType2"></xsd:element>
			</xsd:choice>		

		</xsd:sequence>
		</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="ChoiceType1">
		<xsd:sequence>
		<xsd:element name="Element" type="xsd:int" minOccurs="2" maxOccurs="unbounded"></xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="ChoiceType2">
		<xsd:sequence>
			<xsd:element name="Element" type="xsd:int" minOccurs="2" maxOccurs="unbounded"></xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	
</xsd:schema>

folgendermaßen serialisiere ich zur Zeit ein Objekt in ein XML:


 TypeTest.TypeTestMessage message = new TypeTest.TypeTestMessage();
            message.id = 33;
            message.ItemElementName = TypeTest.ItemChoiceType.Choice1;
            message.Item = new TypeTest.ChoiceType1();
            message.Item.Element = new int[] { 1, 2, 3, 4 };

            String XmlizedString = null;
            MemoryStream memoryStream = new MemoryStream();
            XmlSerializer xs = new XmlSerializer(typeof(TypeTest.TypeTestMessage));
            XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);

            xs.Serialize(xmlTextWriter, message);
            memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
            XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray());

            Console.WriteLine(XmlizedString);
            Console.ReadLine();

soweit so gut. Jedoch bekomme ich folgende Fehlermeldung:

"Temporäre Klasse kann nicht generiert werden (result=1).\r\nerror CS0030: Der Typ TypeTest.ChoiceType1 kann nicht in TypeTest.ChoiceType2 konvertiert werden.\r\nerror CS0029: Der Typ TypeTest.ChoiceType2 kann nicht implizit in TypeTest.ChoiceType1 konvertiert werden.\r\n"

Ich verstehe jedoch das Problem nicht! Die C# Klasse habe ich mir mit xsd.exe aus einem XSD erzeugt.

Ich denke, der Fehler liegt schon bei der Klassenerzeugung via xsd.exe. Hier wird für das itemFeld direkt ChoiceType1 verwendet. Verwende ich nun bei der Instanzierung jedoch als ItemElementName ChoiceType2 ist mir klar, dass es kracht. Jedoch kracht es auch bei ChoiceType1.

kann das bitte einer erklären bzw weiterhelfen??

Danke im voraus!!

Danke!!

03.02.2011 - 10:55 Uhr

Die Webseite verlangt keine Authentifizierung, sondern sie hat ein Zertifikat welches von VeriSign bestätigt wird. Somit muss ich es nicht selbst irgendwo in nem Storage vorhalten.

Meine Frage ist daher, ob ich dazu noch irgend etwas berücksichtigen muss, oder nicht. Die Forensuche und das Internet haben mir hierzu nicht wirklich geholfen!

03.02.2011 - 09:35 Uhr

Hallo zusammen,

Ich versuche grade eine HTTPS-Verbindung zu einem Server aufzubauen, und mir fehlt der richtige Ansatz.

Bis jetzt habe ich nur folgendes:


            WebRequest request = WebRequest.Create("https://...");
            WebResponse response = request.GetResponse();

Die Seite hat ein trusted Zertifikat. Muss ich das irgendwo konfigurieren? Was muss ich noch beachten?

Vielen Dank im Voraus!

20.12.2010 - 11:35 Uhr

Danke! Deine Antwort liegt nahe an der gefundenen Lösung.

Das Problem war, das das System geclustert ist und der zweite cluster aus irgendeinem Grund auf einer alten Version läuft.

Danke trotzdem!

20.12.2010 - 10:51 Uhr

Hallo zusammen,

ich habe folgendes Problem:

bis gestern lief mein System (WebServer <-> ApplikationServer <-> database) wunderbar. Dann war Windows-Path-Tag. Jetzt bekomme ich folgende Fehlermeldung:

System.Runtime.Remoting.RemotingException: The method 'ServerObjectManager' was not found on the interface/type 'XXX.IGate, XXX.server.interfaces, Version=3.5.116.0, Culture=neutral, PublicKeyToken=null'.

Es klingt nach einen Versions-Konflikt. Aber an der Anwendung selbst hat sich nichts geändert. Und auf der Testumgebung ist es in Ordnung. Die Konfiguration ist bei beiden Umgebungen gleich.

Wisst ihr Rat???

Danke im voraus!

30.08.2010 - 13:37 Uhr

Hier noch etwas Code mit ein paar Bemerkungen und Fragen. Ich benutze übrigens zum Loggen log4Net

in mein ServiceBase. Hier werden die Logausgaben übrigends nicht ins logfile geschierben!


protected override void OnStart(string[] args)
        {
            logger.Info("Starting Service starter");
            m_Service = new MyService();
            Thread serviceThread = new Thread(new ThreadStart(m_Service.StartService));
            serviceThread.Start();
            logger.Info("Service successfully started");
        }

myService


public void StartService()
        {
            m_Logger.Info("Start Service...");
            try
            {
                m_Logger.Info("Loading Configuration");
                Loadconfiguration();
                
                
                connection = new ConnectionHandling.Connection();

                m_Logger.Debug("Starting connection thread");
                System.Threading.Thread startingThread = new System.Threading.Thread(new System.Threading.ThreadStart(connection.ConnectToSystem));
                startingThread.Priority = System.Threading.ThreadPriority.Normal;
                startingThread.Name = "CheckConnectionThread";
                startingThread.Start();
                
            }
            catch (Exception e)
            {
                m_Logger.Info("Unhandled Error", e);
            }

            m_Logger.Info("Service Started"); // dieser Eintrag erscheint im Logfile
        }

30.08.2010 - 13:31 Uhr

Hallo zusammen,

ich baue mir grad einen Windows Service. Dieser muss ja in einem bestimmten Zeitrum "hochgefahren" sein, da sonst der DienstManager meckert.

Da beim Starten des Services lange dauernde Aktionen durchgeführt werden müssen, habe ich das eigentliche initialisieren in eine separate Methode ausgelagert. Diese starte ich durch einen Thread. Ich habe gedacht, der Service ist damit abgekoppelt von der eigentlichen Initialisierung. Entsprechend meiner Logausgaben sehe ich auch, dass nach dem Starten des Threads noch ein "service started" im Logfile erscheind, und der Thread im Hintergrund läuft.

Jedoch reicht das scheinbar dem DienstManager nicht, da er noch auf das Ende des Threads wartet. Was mache ich falsch? Wie schaffe ich es, dass der Dienst startet und trotzdem eine längere Initialisierung läuft?

Danke im voraus!

27.08.2010 - 11:02 Uhr

Ah ich hab grad herausgefunden, dass DotNet da auf den lokalen zertifikatsstorage zugreift.
Gehe ich da richtig in der Annahme?

Wie würde ich aber programmatisch ein Zertifikat bestätigen?

27.08.2010 - 10:36 Uhr

Hallo zusammen,

ich hab mir grad ein kleines Tool geschrieben, welches einen simplen HTTP Request absendet.

Um das ganze etwas spannender zu machen, habe ich es auch mit einer HTTPS Seite versucht.

Jetzt hätte ich erwartet, dass ein Fehler passiert, weil ich erst ein Zertifikat bestätigen muss. Aber nichts ist passiert. Ich habe einfach als Response die Startseite bekommen.

Liegt das daran, weil ich mit dem Browser schon einmal auf der Seite war?

Wie müsste ich vorgehen, wenn ich erstmal ein Zertifikat bestätigen muss?

24.08.2010 - 17:10 Uhr

Hallo zusammen,

ich will grad meinen ersten Windows Service entwickeln. Das Turtorial hierzu ist schon recht prima, jedoch hab ich da eine Frage:

Wenn ich den Service gerade erst entwickle, installier ich ihn typischerweise nicht. Wie kann ich VS dazu bringen, dass ich den Service starten kann? Ich will doch nicht bei jeder Änderungen die ich mache jedesmal das Ding deployen müssen.

Kann mir da einer helfen?

Danke im voraus!

18.03.2010 - 15:44 Uhr

Hallo,

ich will mir grad mit XSD.exe aus einem XSD C#-Klassen generieren. Leider hab ich festgestellt, dass XSD.Exe Annotations ignoriert. Gibt es da alternativen, die dies nicht tun?

Die Annotations sind in dem Falle für mich wichtig.

Danke im voraus

01.03.2010 - 14:28 Uhr

Hallo zusammen. In C#.Net hat man die Möglichkeit die AssemblyVersion und die AssemblyFileVersion zu setzen. Jetzt besteht aber meine Solution aus 40 Einzelprojekten. Gibt es eine Möglichkeit die AssemblyVersion global zu setzen? Ich möchte sie nicht automatisch setzen lassen, da wir ein festes Format dafür haben.

Ich stell mir sowas wie ein Parameter zur compilezeit oder ne configdatei vor. Gibts da was?

Danke im voraus

26.01.2010 - 10:53 Uhr

Hallo zusammen,

mir ist vor kurzem Code unter die Finger gekommen, bei dem für das Remoting die Objekte manuell Serialisiert werden. D.H. all haben eine ToArray-Methode, die das Objekt in ein Array verwandelt.

Meine Frage ist jetzt: Ist sowas heute noch notwendig? Sollten die Laufzeitumgebungen nicht gut genug sein um die Serialisierung automatisch durchzuführen? Wo genau liegt der Vorteil in einer manuellen Serialisierung??

Danke im voraus!!

05.02.2009 - 10:54 Uhr

ok hier der Code. Wie gesagt: hierbei werden die Attachments alle zusammen in einen extra Part gesetzt, ohne dass ich das will. Wenn ich einen Mail per Outlook versende passiert dies nicht(was aber funktiniert)


static void Main(string[] args)
        {
            System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();
            smtpClient.Host = "xyz.smtpserver.de";

            string Sender = "ich@xyz.de";
            string Recipience = "ich@xyz.de";
            string Subject = "TestSubject";

            System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
            message.Sender = new System.Net.Mail.MailAddress(Sender);
            message.From = new System.Net.Mail.MailAddress(Sender);
            if (Recipience != null && !Recipience.Equals(String.Empty))
                message.To.Add(Recipience);
            if (Subject != null && !Subject.Equals(String.Empty))
                message.Subject = Subject;
            message.Priority = System.Net.Mail.MailPriority.Normal;

            AddAlternateContents(message);
            AddAttachments(message);
            smtpClient.Send(message);
        }

        private static void AddAttachments(System.Net.Mail.MailMessage Message)
        {
            System.IO.FileStream fileStream = new System.IO.FileStream("D:\\vorUpload.txt", System.IO.FileMode.Open);
            System.Net.Mail.Attachment MyAttachment = new System.Net.Mail.Attachment(fileStream, "vorUpload.txt");
            MyAttachment.ContentId = "017001c986ea$0df15af2$_CDOEX";
            Message.Attachments.Add(MyAttachment);
        }

        private static void AddAlternateContents(System.Net.Mail.MailMessage Message)
        {
            //Text
            System.Net.Mail.AlternateView AlternateTexView = System.Net.Mail.AlternateView.CreateAlternateViewFromString("TestContent", new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Text.Plain));
            Message.AlternateViews.Add(AlternateTexView);

            DateTime startDate = new DateTime(2009, 2, 20, 10, 0, 0);
            DateTime endDate = new DateTime(2009, 2, 20, 10, 0, 0);

            //Calendar
            StringBuilder lo_StringBuilder = new StringBuilder();
            lo_StringBuilder.AppendLine("BEGIN:VCALENDAR");
            lo_StringBuilder.AppendLine("VERSION:2.0");
            lo_StringBuilder.AppendLine("METHOD:REQUEST");
            lo_StringBuilder.AppendLine("BEGIN:VEVENT");
            lo_StringBuilder.AppendLine("UID:" + Guid.NewGuid().ToString());
            lo_StringBuilder.AppendLine("SUMMARY:" + "Subject");
            //lo_StringBuilder.AppendLine("DESCRIPTION;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:" + "CALENDAR " + ls_SubeventDetails);
            lo_StringBuilder.AppendLine("DESCRIPTION;CHARSET=UTF-8:" + "DescriptionText");
            lo_StringBuilder.AppendLine(string.Format("ORGANIZER;CN=\"{0}\":MAILTO:{1}", "Ich", "ich@xyz.de"));
            lo_StringBuilder.AppendLine("CLASS:PUBLIC");
            lo_StringBuilder.AppendLine("DTSTART:" + startDate.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z"));
            lo_StringBuilder.AppendLine("DTEND:" + endDate.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z"));
            lo_StringBuilder.AppendLine("DTSTAMP:" + DateTime.Now.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z"));

            lo_StringBuilder.AppendLine("ATTACH:CID:" + "017001c986ea$0df15af2$_CDOEX");
            lo_StringBuilder.AppendLine("END:VEVENT");
            lo_StringBuilder.AppendLine("END:VCALENDAR");

            System.Net.Mail.AlternateView AlternateCalendarView = null;

            System.Net.Mime.ContentType contentType = new System.Net.Mime.ContentType("text/calendar; charset=utf-8; method=REQUEST");
            contentType.Name = "CalendarEntry.ics";
            AlternateCalendarView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(lo_StringBuilder.ToString(), contentType);
            
            Message.AlternateViews.Add(AlternateCalendarView);
        }

04.02.2009 - 18:42 Uhr

Hallo zusammen,

ICh versuche grade mit C# Komplexere Emails zu versenden und stoße da auf ein problem:

Meine Email beinhaltet eine ALternateView mit HTML-Content und Linked Resources. DAzu kommen dann noch attachments.

Jetzt denke ich mir, die Email muss folgende Struktur haben:

Als Content-Type: multipart/mixed
1.Part = multipart/alternate (darin die Parts für den HTML contetent und die Linked Reseouces
2. Part = 1. Attachment
3. Part = 2. Attachment

Jedoch macht .Net die Beiden Attachments wiederunm in einen Part der als Typ multipart/mixed hat.

das hat jedoch zur folge, dass verschieden Clients die Attachments nicht anzeigen können. Unter anderem auch, wenn ich mit iCaleinträgen als alternateViews arbeite

Andere Email-Programme wie outlook schachtel die Attachments auch nicht in einen extra Part. Wieso dann .Net? oder mach ich was falsch?

Diesen zusätzlichen Part fügt .Net übrigends nur ein, wenn ich mit AlternateViews arbeite!!

Vielen dank im voraus

01.07.2008 - 10:22 Uhr

Hallo zusamme,

Ich habe zur Zeit ein Trickreiches Problem mit Generics.

Ich habe folgende InterfaceStruktur

  1. interface IEinfachesObject
  2. interface IEinfacheObjektListe<ABC> where ABC : IEinfachesObject
  3. interface ISPeziellesObjekt: IEinfachesObjekt
  4. interface ISpezielleObjektListe: IEinfacheObjektListe<ABC> where ABC : ISpeziellesObjekt

soweit so gut.

nur hab ich eine Prüfunk die Lautet wie folgt:

ISpezielleObjektListe SpezielleObjektliste;

if(SpezielleObjektliste is IEinfacheObjektListe<IEinfachesObjekt>) ...

das geht aber nicht. Nur folgende Prüfungen führen zum erfolg:
if(SpezielleObjektliste is IEinfacheObjektListe<ISpezielleObjekt>) ...
if(SpezielleObjektliste is ISpezielleObjektListe) ...

wieso kann ich nicht auf die EinfacheObjektliste mit dem Einfachen Obbjekt prüfen, sondern nur auf das Spezielle?

Fals das nicht geht, wie kann ich überhaupt auf die EinfacheObbjektliste Prüfen, ohne ein Spezielles Objekt anzugeben, weil mir das in diesem Moment egal ist, da ich keine Speziellen Methoden brauche.

Kann mir da einer Helfen??

Danke im Voraus

14.05.2008 - 09:02 Uhr

Hallo zusammen,

Auf meiner ASPX-Seite habe ich eine Tabelle mit mehreren Spalten. Wenn ich jetzt in eine Spalte einen sehr langen Text einfüge (ohne leerzeichen) dann bekomme ich auf der Webseite einen Scrollbalken. Das ist ja auch richtig so. nur in der Printpreview bekomme ich ein Problem:

beim IE7 wird nun skaliert, weil die webseite nicht auf das blatt passt. Somit sehe ich trotzdem alles.

Beim IE6 jedoch wird nicht skaliert. Somit wird die webseite abgeschnitten.

Meine Frage ist jetzt: habe ich irgendeine Möglichkeit den langen Text umbrechen zu lassen obwohl keine leerzeichen darin sind?

22.04.2008 - 11:20 Uhr

Hallo zusammen,

ich versuch mich grad mal an ICal.

Mein Ziel ist es an jemanden per Mail einen Termin zu versenden. Ich brauch keine bestätigung, Terminplanung oder sonstwas.

Einfach nur, dass man ein Mail bekommt und die landet wie bei outlook im kalender. Es gibt zwar die Outlookschnitstelle in .Net, aber das ist dann ja wieder nichtmehr kompatibel mit Notes usw.

Ich möcht auch ungern den termin als ics-Datei versenden, die der Empfänger erst importieren muss.

Kann mir hierbei einer Helfen? Das mail versenden in .Net geht ja mit der SMPTClient-Klasse recht leicht. Nur am Inhalt haperts halt.

Vielen dank im voraus

05.03.2008 - 10:20 Uhr

Hallo zusammen

Ich veruche grade ein komplexeres AJAXControll zu erstellen.

Dazu habe ich ein Datenstruktur in form eine Dictionary<String,Liste<"Object">>

Für jeden Key erstelle ich eine Checkbox um seine Objekte (in Tabellen) anzuzeigen oder auch nicht.

Wie übergebe ich jedoch die IDs der Controlls (Checkboxen mit jeweils einer Liste von Tables) an das JavaSkript?

Und wie kann ich dann für jede Checkbox einen Handler anlegen mit dem ich dann die Tabelen auf style.display = 'none' setze?

Ich hoffe ich habe mich verständlich genug ausgedrückt.

Danke im voraus

03.03.2008 - 12:55 Uhr

Ich möchte eine Tabelle erzeugen, die für jeden Tag der woche eine Spalte hat. Im Header sollen die Wochetagnamen angezeigt werden.

In C# habe ich bisher nur das Enum DayOfWeek gefunden. Damit kann ich mir zu einem Datum über den Calender den enpsrechenden wochentag heraussuchen.

Jedoch ist dies nur der Enum-Wert. Den kann ich zur not noch auf int casten.

Wie komme ich jedoch an den Namen des Wochentages???

Außerdem wäre es noch hilfreich, wenn ich da irgendwie drüber iterieren könnte, da ja je nach Culture die Woche mit MOntag oder Sonntag anfängt. Wie ginge das??

Danke im voraus

02.03.2008 - 18:44 Uhr

Hallo Zusammen,

ich bin relativ neu in den Webtechnologien der .Net-Welt. Steinigt mich also bitte nicht gleich, wenn das hier ne Anfängerfrage sein sollte.

Ich habe mit ein eine Seite eine WebControls.CheckBox gesetzt. Dieser habe ich einenen Eventhandler hinzugefügt.

Leider reagiert meine Seite nicht auf meine Checkboxänderung. Im Debugger springt er nicht mal in die entsprechende Methode. Was mach ich falsch??

so habe ich die Checkbox in der OnInitMethode angelegt:


            CheckBox check = new CheckBox();
            check.CheckedChanged += new EventHandler(this.Check_Clicked);

            m_TestLabel = new Label();
            m_TestLabel.Text = "Hallo";

das ist die eventmethode;

   
        private void Check_Clicked(Object sender, EventArgs e)
        {

            m_TestLabel.Text = "X";
        }


12.10.2007 - 06:53 Uhr

Ja Syntax Hightlighting hab ich, aber doch nur sehr rudimentär. Die Frage ist, ob ich es auch irgendwo sinnvoll Konfigurieren kann!

10.10.2007 - 17:13 Uhr

da kann man zwar ein paar einstellungen tätgen, aber ein wirkliches syntax highlighting ist das nicht.
Trotzdem danke

10.10.2007 - 15:45 Uhr

Hallo zusammen,

kann ich in Visual Studio 2003 irgendwie das Syntax Hitghlighting/Coloring konfigurieren? wenn ja, wie?

Danke im Voraus

26.02.2007 - 10:46 Uhr

Die Hab ich auch schon durchsucht und bin über verschiedene externe Tool und selbst implementierte POP3-Clients gestoßen. Mich wundert nur: gibt es in .Net keine standart-klasse für den E-Mail-Abruf?? Es gibt doch auch eine zum versenden!! Sehr seltsam

26.02.2007 - 10:25 Uhr

Hallo zusammen,

seit langem setz ich mich mal wieder an c# und will einen Mail-Client schreiben. Jedoch hab ich bis jetzt nur in System.Net.Mail den SmtpClient zum senden von Mails gefunden. Wie jedoch kann ich mit Pop3 emails holen?

Danke im voraus

24.05.2006 - 08:58 Uhr

Ich habe bei Visual Studio 2005 folgende fehlermeldung erhalten:

Assembly ....dll' must be strong signed in order to be marked as a prerequisite.

Wie jedoch kennzeichne ich Assemblys als strong? Was hat das überhaupt für eine Beduetung?

23.05.2006 - 08:19 Uhr

Hallo zusammen,

gibt es eine Möglichkeit einen Placeholder einer Aspx-Seite so mit Textinformationen zu füllen, dass der text nicht einfach nur ausgegeben wird(wie bei einem Label), sondern auch interpretiert wird(z.b. tags)??

Folgendes Habe ich vor:

ich will eine Tabelle darstellen. diese soll in der aspx-seite durch einen Placeholder positioniert werden. diese tabelle jedoch wird in einem c#-porgramm inclusive aller Tags, zusammengebaut. D.H. das C#-Programm liefert einen string, der dann nur in die ASPX-Seite eingefürgt werden muß. (Die gründe dafür seien mal dahingestellt)

Leider hab ich bisher nur gefunden, dass man Texte in vorm von Labels an einen Placeholder binden kann. diese geben den Text jedoch nur aus.

Weiß einer Rat? oder einen Alternativen Vorschlag??