Hallo,
ich habe folgendes Problem:
ich mache eine Http Request wie folgende
_httpRequest = WebRequest.Create(endPoint);
unter Framework 2.0 hat es funktioniert und ohne Probleme auch wenn das Program als service läuft.
Nach der Umstellung auf Framework 4.0 funktioniert nur wenn das Programm als console läift aber als service nur unter bestimmte user.
Es gibt keine Exception gar nichts.
Mein Frage was hat sich geändert von .Net 2 auf .Net 4 und wie kann man ich das Probleme lösen.
Danke im voraus
Hallo,
Dein Thema und vor allem auch der Titel dieses Themas ist alles andere als gut beschrieben. Siehe auch [Hinweis] Wie poste ich richtig?
Was hast Du genau vor? Was rufst Du genau auf?
Was sich geändert hat kann man in der MSDN nachlesen. Der Sprung von 2.0 auf 4.0 ist schon relativ groß - vielleicht besteht das Problem auch an anderer Stelle.
Wenn es ein Problem mit dem WebRequest allein geben würde, würde eine Exception kommen. Aber da Du nicht mal geschrieben hast, ob der Request beim Ziel ankommt, oder was beim HTTP verkehr (zB per Fiddler) zu sehen ist, und man auch keinerlei Code von Dir sieht - ist das alles nur sinnloses raten.
Der Grund, wieso es als Service nicht funktioniert, können vor allem die nur sehr eingeschränkten Rechte sein.
Hier lohnt sich auch ein manuelles logging zB in eine Textdatei (auf die der Service logischerweise Rechte haben sollte).
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Danke für die Rückmeldung.
also ich sende eine Packet an einer Hardware Gerät über Http
Wenn das Programm als Service läuft schreibt vor dem WebRequest.Create in logfile und danach passiert nichts auch keine Exception
Die Funktion ist eigentlich ziemlich einfach und sieht wie folgende;
private void SendPacket()
{
try
{
WriteInLogFile("Vor Create");
WebRequest request = WebRequest.Create([URL]http://IP:Port/[/URL]);
WriteInLogFile("Nach Create");
}
catch (Exception ex)
{
WriteInLogFile("Exception: " + ex.Message);
}
}
danach passiert nichts
Die WebRequest.Create-Methode macht ja auch nichts weiter, als einen Request zu erstellen. Der wird dabei noch nicht abgeschickt!
Solang kein GetResponse() aufgerufen wird passiert auch meines Wissens nichts.
Siehe dazu (wieder) [Hinweis] Wie poste ich richtig? 1.1 ((und in Zukunft bitte auch Punkt 6)
WebRequest.Create-Methode (String)
WebRequest.GetResponse-Methode
Dass das also bei einer Console funktioniert, bezweifle ich mehr als stark.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Er soll aber dann nach dem WebRequest.Create-Methode die nächste Zeile ausführen:
WriteInLogFile("Nach Create");
Macht er aber nicht, auch keine Exception und das ist mein Problem.
Bezweifel ich, dass er das nicht tut.
Das Problem liegt vermutlich eher an der Methode WriteInLogFile
und nicht am WebRequest.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ich kann deine Bezweifeln verstehen.
Die Methode WriteInLogFile schreibt ein Text in einer Datei.
Und wenn die Methode WriteInLogFile nicht funktioniert hätte, hätte vor der WebRequest.Create-Methode auch nicht funktioniert.
Das Problem wie schon mal gesagt habe, es funktioniert nicht nur wenn das Programm als Windows Service und im Windows 7 läuft.
Hallo,
schon mal mit dem Debugger reingeschaut?
Gruss, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Ich würde mal schätzen dass du beim Logfile ein Pfad Problem hast (existiert nicht, fehlende Rechte, ...).
Gruss
ServiceStack & Angular = =)