Hej! hur ser sidan ut om du surfar till den med din browser? Nej, då får jag inget felmeddelande. kan man f testa sjlv, eller r URL:en hemlig? URL'en är till ett internt system, så du kan tyvärr inte testa. om du slänger in en webbrowserkomponent och två buttons, Det ser ut som vb 6 kod. Är det tillämpart på det här? Ja det är det! (tillämpningsbart) INNER HTML: har du möjlighet att kolla med server-loggen om någon request nåt fram? En provisorisk lsning kunde kanske vara att stta in anropet i en try-catch och sen Jo det kommer fram. Hade det inte varit för att anrop från IE alltid går fort, så skulle jag hålla med dig... Du kanske temporärt kan köra med browserkomponenten i ditt projekt. Visst det kan jag göra (eller ditt andra förslag, med timeout-catch-retry). undrar om det kan vara nån egenskap hos HttpWebRequest som bör ändras så Du kan testa att: Hej igen!HttpWebRequest.GetResponse "The operation has timed out" första gången den körs
När koden nedan körs får jag alltid "The operation has timed out" - Exception, första gången den körs. Försöker jag igen får jag inget exception och det tar heller inte lång tid (max en sekund). Startar jag om programmet får jag felet igen.
Jag provade o köra ngen på exen innan körning, men det gav inget resultat. Har såklart oxå provat att höja timeouten, men det gör heller ingen skillnad.
Till saken hör oxå att timeout-exceptionet kommer långt efter att fem sekunder passerat.
Vore kanon om någon har tips eller lösning gällande detta!
...
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 5000;
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
...
Tack på förhand!
//peterSv: HttpWebRequest.GetResponse "The operation has timed out" första gången den k
får du nåt felmeddelande då?Sv:HttpWebRequest.GetResponse "The operation has timed out" första gången den k
Det tar heller inte olika lång tid första eller andra gången jag surfar dit under samma session.
//peterSv:HttpWebRequest.GetResponse "The operation has timed out" första gången den k
vad vill du gra med responsen? Sv: HttpWebRequest.GetResponse "The operation has timed out" första gången den k
Resultatet är en XML-sträng som jag parsar.
//peterSv:HttpWebRequest.GetResponse "The operation has timed out" första gången den k
lägger sen till en referens till mshtml-dll:en, och avslutningsvis sätter en breakpoint på button2_click's end sub.
sen paste:ar du in koden nedan, klickar på button 1
väntar tills du ser sidan i browsern
klickar på button 2 och när den breakar kollar in strang1 och 2 med
mouseover i koden.
vad händder då? byt google mot din url förresten.
Dim minURL As String = "http://www.google.com"
Dim doc As mshtml.HTMLDocument
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
AxWebBrowser1.Navigate2(minURL)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
doc = DirectCast(AxWebBrowser1.Document, mshtml.HTMLDocument)
Dim strang1, strang2 As String
strang1 = doc.body.innerHTML.ToString
strang2 = doc.body.innerText.ToString
End SubSv: HttpWebRequest.GetResponse "The operation has timed out" första gången den k
Sv:HttpWebRequest.GetResponse "The operation has timed out" första gången den k
Koden är i högsta grad vb.net och målet med koden
är att lokalisera ett problem och inte tillfredställa några estetiska ideal!Sv: HttpWebRequest.GetResponse "The operation has timed out" första gången den k
<DIV class=e><SPAN class=b> </SPAN> <SPAN class=m><?</SPAN><SPAN class=pi>xml version="1.0" </SPAN><SPAN class=m>?></SPAN> </DIV>
<DIV class=e>
<DIV class=c style="MARGIN-LEFT: 1em; TEXT-INDENT: -2em"><A class=b onfocus=h() onclick="return false" href="#">-</A> <SPAN class=m><</SPAN><SPAN class=t>VMC500</SPAN><SPAN class=t> ArticleNumber</SPAN><SPAN class=m>="</SPAN><B>P41808V220p10</B><SPAN class=m>"</SPAN><SPAN class=t> ReleaseLevel</SPAN><SPAN class=m>="</SPAN><B>27</B><SPAN class=m>"</SPAN><SPAN class=t> SoftwareRevision</SPAN><SPAN class=m>="</SPAN><B>11147</B><SPAN class=m>"</SPAN><SPAN class=t> SoftwareBuilt</SPAN><SPAN class=m>="</SPAN><B>Tue Jan 30 14:36:52 CET 2007</B><SPAN class=m>"</SPAN><SPAN class=t> UnitTypeCode</SPAN><SPAN class=m>="</SPAN><B>34</B><SPAN class=m>"</SPAN><SPAN class=t> SiteName</SPAN><SPAN class=m>="</SPAN><B>ui</B><SPAN class=m>"</SPAN><SPAN class=t> SystemName</SPAN><SPAN class=m>="</SPAN><B>sib</B><SPAN class=m>"</SPAN><SPAN class=t> VehicleID</SPAN><SPAN class=m>="</SPAN><B>76</B><SPAN class=m>"</SPAN><SPAN class=m>></SPAN></DIV>
<DIV>
<DIV class=e>
<DIV class=c style="MARGIN-LEFT: 1em; TEXT-INDENT: -2em"><A class=b onfocus=h() onclick="return false" href="#">-</A> <SPAN class=m><</SPAN><SPAN class=t>Functions</SPAN><SPAN class=m>></SPAN></DIV>
<DIV>
<DIV class=e>
<DIV style="MARGIN-LEFT: 1em; TEXT-INDENT: -2em"><SPAN class=b> </SPAN> <SPAN class=m><</SPAN><SPAN class=t>Function</SPAN> <SPAN class=t>Name</SPAN><SPAN class=m>="</SPAN><B>OrderMode</B><SPAN class=m>"</SPAN><SPAN class=t> Version</SPAN><SPAN class=m>="</SPAN><B>2</B><SPAN class=m>"</SPAN><SPAN class=m> /></SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="MARGIN-LEFT: 1em; TEXT-INDENT: -2em"><SPAN class=b> </SPAN> <SPAN class=m><</SPAN><SPAN class=t>Function</SPAN> <SPAN class=t>Name</SPAN><SPAN class=m>="</SPAN><B>Versions</B><SPAN class=m>"</SPAN><SPAN class=t> Version</SPAN><SPAN class=m>="</SPAN><B>1</B><SPAN class=m>"</SPAN><SPAN class=m> /></SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="MARGIN-LEFT: 1em; TEXT-INDENT: -2em"><SPAN class=b> </SPAN> <SPAN class=m><</SPAN><SPAN class=t>Function</SPAN> <SPAN class=t>Name</SPAN><SPAN class=m>="</SPAN><B>EventLog</B><SPAN class=m>"</SPAN><SPAN class=t> Version</SPAN><SPAN class=m>="</SPAN><B>1</B><SPAN class=m>"</SPAN><SPAN class=m> /></SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="MARGIN-LEFT: 1em; TEXT-INDENT: -2em"><SPAN class=b> </SPAN> <SPAN class=m><</SPAN><SPAN class=t>Function</SPAN> <SPAN class=t>Name</SPAN><SPAN class=m>="</SPAN><B>NavInit</B><SPAN class=m>"</SPAN><SPAN class=t> Version</SPAN><SPAN class=m>="</SPAN><B>2</B><SPAN class=m>"</SPAN><SPAN class=m> /></SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="MARGIN-LEFT: 1em; TEXT-INDENT: -2em"><SPAN class=b> </SPAN> <SPAN class=m><</SPAN><SPAN class=t>Function</SPAN> <SPAN class=t>Name</SPAN><SPAN class=m>="</SPAN><B>PPA</B><SPAN class=m>"</SPAN><SPAN class=t> Version</SPAN><SPAN class=m>="</SPAN><B>2</B><SPAN class=m>"</SPAN><SPAN class=m> /></SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="MARGIN-LEFT: 1em; TEXT-INDENT: -2em"><SPAN class=b> </SPAN> <SPAN class=m><</SPAN><SPAN class=t>Function</SPAN> <SPAN class=t>Name</SPAN><SPAN class=m>="</SPAN><B>LayoutPosition</B><SPAN class=m>"</SPAN><SPAN class=t> Version</SPAN><SPAN class=m>="</SPAN><B>1</B><SPAN class=m>"</SPAN><SPAN class=m> /></SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="MARGIN-LEFT: 1em; TEXT-INDENT: -2em"><SPAN class=b> </SPAN> <SPAN class=m><</SPAN><SPAN class=t>Function</SPAN> <SPAN class=t>Name</SPAN><SPAN class=m>="</SPAN><B>Login</B><SPAN class=m>"</SPAN><SPAN class=t> Version</SPAN><SPAN class=m>="</SPAN><B>1</B><SPAN class=m>"</SPAN><SPAN class=m> /></SPAN> </DIV></DIV>
<DIV><SPAN class=b> </SPAN> <SPAN class=m></</SPAN><SPAN class=t>Functions</SPAN><SPAN class=m>></SPAN></DIV></DIV></DIV>
<DIV><SPAN class=b> </SPAN> <SPAN class=m></</SPAN><SPAN class=t>VMC500</SPAN><SPAN class=m>></SPAN></DIV></DIV></DIV>
INNER TEXT:
<?xml version="1.0" ?>
- <VMC500 ArticleNumber="P41808V220p10" ReleaseLevel="27" SoftwareRevision="11147" SoftwareBuilt="Tue Jan 30 14:36:52 CET 2007" UnitTypeCode="34" SiteName="ui" SystemName="sib" VehicleID="76">
- <Functions>
<Function Name="OrderMode" Version="2" />
<Function Name="Versions" Version="1" />
<Function Name="EventLog" Version="1" />
<Function Name="NavInit" Version="2" />
<Function Name="PPA" Version="2" />
<Function Name="LayoutPosition" Version="1" />
<Function Name="Login" Version="1" />
</Functions>
</VMC500>
//peterSv:HttpWebRequest.GetResponse "The operation has timed out" första gången den k
Sv: HttpWebRequest.GetResponse "The operation has timed out" första gången den k
vid misslyckad request prova igen fr ett lyckat resultat. (d endast frsta strular )Sv: HttpWebRequest.GetResponse "The operation has timed out" första gången den k
Jag har kört med en http-sniffer nu (Fiddler2). Där ser jag några intressanta saker:
- Det kommer ett svar efter det att mitt program säger timeout.
- Utmeddelandet snappas direkt upp av sniffern, det tar några sekunder innan svaret kommer, men i diagnostiken ser det ut som det gick jättefort (mindre än 200ms).
- Klonar jag ett meddelande från explorern går det fort, klonar jag från mitt program går det långsamt. Likadant här, dock: kör jag klonen igen så går det fort!
Hoppas infon hjälper!
//peterSv:HttpWebRequest.GetResponse "The operation has timed out" första gången den k
Sv:HttpWebRequest.GetResponse "The operation has timed out" första gången den k
Den behöver ju inte synas, bara instansieras som klass.Sv: HttpWebRequest.GetResponse "The operation has timed out" första gången den k
Men jag är ju oxå ute efter en långsiktig lösning!
//peterSv:HttpWebRequest.GetResponse "The operation has timed out" första gången den k
att den behandlas lika generöst som webbrowserkomponenten?Sv: HttpWebRequest.GetResponse "The operation has timed out" första gången den k
bryta upp kodraderna lite grann.
först dimensionera,
sen sätta
request.Timeout = -1;
sen tilldela URL:en
osv.
(this tip is based entirely on intuition)Sv:HttpWebRequest.GetResponse "The operation has timed out" första gången den k
Det har löst sig halvvägs genom att köra ngen.exe (på rätt sätt! gjorde liten miss innan... *blush*).
Men problemet kvarstår ifall man är kopplad till två nät. Ex: har både wlan och lan påslaget. Här finns ju en klockren workaround (dessutom fungerar det fortfarande på andra försöket...), men vi kan inte kräva av våra kunder att de enbart får ha ett nätverk igång. Tips?
//peter