Laden...

WebRequest.Create

Erstellt von lhbib75 vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.208 Views
L
lhbib75 Themenstarter:in
5 Beiträge seit 2012
vor 11 Jahren
WebRequest.Create

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

16.842 Beiträge seit 2008
vor 11 Jahren

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).

L
lhbib75 Themenstarter:in
5 Beiträge seit 2012
vor 11 Jahren

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);
	}
}
2.891 Beiträge seit 2004
vor 11 Jahren

danach passiert nichts

Die WebRequest.Create-Methode macht ja auch nichts weiter, als einen Request zu erstellen. Der wird dabei noch nicht abgeschickt!

16.842 Beiträge seit 2008
vor 11 Jahren

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.

L
lhbib75 Themenstarter:in
5 Beiträge seit 2012
vor 11 Jahren

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.

16.842 Beiträge seit 2008
vor 11 Jahren

Bezweifel ich, dass er das nicht tut.
Das Problem liegt vermutlich eher an der Methode WriteInLogFile und nicht am WebRequest.

L
lhbib75 Themenstarter:in
5 Beiträge seit 2012
vor 11 Jahren

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.

3.170 Beiträge seit 2006
vor 11 Jahren

Hallo,

schon mal mit dem Debugger reingeschaut?

Gruss, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

R
295 Beiträge seit 2008
vor 11 Jahren

Ich würde mal schätzen dass du beim Logfile ein Pfad Problem hast (existiert nicht, fehlende Rechte, ...).

Gruss

ServiceStack & Angular = =)