By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,771 Members | 1,709 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,771 IT Pros & Developers. It's quick & easy.

System.Net.WebException nach 2. GetRequestStream

P: n/a
Hallo NewsGroup,

in meiner Anwendung rufe ich ein Internet-asp-script auf.
Diese Funktionalität habe ich in der Funktion "fuwHandelWebRequestPost"
(siehe unten) gekapselt.
Diese Funktion arbeitet ausgezeichnet.
Leider bereitet diese Routine Probleme (WebException), wenn innerhalb 30
sec. sie ein weiteres Mal aufgerufen wird.
Vermutlich blockiert der 1. Aufruf noch die Ressource und diese muss
explizit "geschlossen" werden.

Was muss ich tun, um mein Problem zu lösen?

Besten Dank vorab!

Ciao, Albert
***
Public Function fuwHandleWebRequestPost(ByVal pstrWebAddress As String,
_
Optional ByVal pstrParams As String =
"", _
Optional ByVal pstrFilePath As String =
"", _
Optional ByVal pbolSuppressError As
Boolean = False) _
As String
'************************************************* ************************
' fuwHandleWebRequestPost: Web-Adresse mittels POST aufrufen
'----------------------------------------------------------
' In: pstrWebAddress: Web-Address (z.B.: http://www.abcde.de)
' pstrParams: Post-Params (z.B.:
var1=hugo&var2=emil&var3=egon) (darf nicht mit ? beginnen)
' (die einzelnen Variablen müssen
mittels "HttpUtility.UrlEncode" bearbeitet sein)
' pstrFilePath: File-Path, falls Web-Ergebnis gespeichert
werden sollen
' Out: Web-Ergebnis ("", falls Fehler aufgetreten ist)
'----------------------------------------------------------
'Stefan Falz [MVP] <ms*****@asp-solutions.de>
'MS MVP - Visual Developer ASP/ASP.NET
'http://www.asp-solutions.de/ - Consulting, Development
'http://aspnet.codebooks.de/ - Das ASP.NET Codebook (VB.NET)
'************************************************* ************************
Dim lobjWebRequest As System.Net.HttpWebRequest
Dim lstrWebErgebnis As String
Dim s As String

'--- Init
fuwHandleWebRequestPost = "" 'zunächst
s = pstrWebAddress.Trim

'--- WebAdresse evtl. ergänzen
If s.ToLower.IndexOf("www.") >= 0 Then 'www. => Web-Address
'--- Web-Address
If s.ToLower.IndexOf("http://") < 0 Then 'kein http://
(Schemabezeichner) => ergänzen
s = "http://" & s
End If
Else 'sonst ???
End If

'--- 1/Web-Adresse mittels POST aufrufen (POST => asp: Request.Form)
Try
lobjWebRequest = Net.WebRequest.Create(s)

lobjWebRequest.Method = "POST"
lobjWebRequest.ContentLength = pstrParams.Length
lobjWebRequest.ContentType = "application/x-www-form-urlencoded"
lobjWebRequest.Timeout = (30 * 1000) 'Default: 100.000 = 100
Sec.

Dim lobjPostStream As System.IO.Stream =
lobjWebRequest.GetRequestStream
lobjPostStream.Write( _
System.Text.Encoding.ASCII.GetBytes(pstrParams),
_
0, _
pstrParams.Length _
)

Catch ex As WebException
gclsMsgHelp.fumMsgShow(161, MessageBoxIcon.Information, ,
ex.Message, CStr(lobjWebRequest.Timeout / 1000))
Return ""
Catch ex As Exception
If Not pbolSuppressError Then
MessageBox.Show("+++clsGeneral/fuwHandleProcessStart/Request:"
& ControlChars.CrLf _
& "pstrWebAddress: " & pstrWebAddress &
ControlChars.CrLf _
& "pstrParams: " & pstrParams &
ControlChars.CrLf _
& "s: " & s & ControlChars.CrLf _
& ex.ToString)
End If
Return ""
Finally
End Try

'--- 2/Web-Adresse mittels POST aufrufen (POST => asp: Request.Form)
Try
Dim lobjWebResponse As Net.HttpWebResponse
lobjWebResponse = lobjWebRequest.GetResponse

Dim lobjResponseStream As System.IO.StreamReader = _
New
System.IO.StreamReader(lobjWebResponse.GetResponse Stream)
lstrWebErgebnis = lobjResponseStream.ReadToEnd()
Catch ex As Exception
If Not pbolSuppressError Then
MessageBox.Show("+++clsGeneral/fuwHandleProcessStart/Response:"
& ControlChars.CrLf _
& "pstrWebAddress: " & pstrWebAddress &
ControlChars.CrLf _
& "pstrParams: " & pstrParams &
ControlChars.CrLf _
& "s: " & s & ControlChars.CrLf _
& ex.ToString)
End If
Return ""
Finally
End Try

'--- Web-Ergebnis speichern
If pstrFilePath = "" Then 'Web-Ergebnis nicht speichern
Return lstrWebErgebnis 'Web-Daten zurückgeben
End If
If Not gclsGeneral.fugCreateFile(pstrFilePath, lstrWebErgebnis) Then
Return ""
End If

'--- OK
Return lstrWebErgebnis 'Web-Daten zurückgeben
End Function
Nov 21 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Hallo Albert!

"Albert Ludwig" <Al***************@gmx.de> schrieb:
Was muss ich tun, um mein Problem zu lösen?


In englischsprachigen Newsgroups Fragen auch auf Englisch stellen oder aber
besser in die die passende deutschsprachige .NET-Gruppe (Hierarchie
"microsoft.public.de.german.entwickler.dotnet. *") posten.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Nov 21 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.