|
| |

VB.NET - Ein- und Umsteiger| FileStream Problem bei WebServer | |  | | Autor: TTP | | Datum: 06.01.10 10:30 |
| Hallo,
ich hab auf Basis des TCP-Listener mal begonnen einen Webserver zu coden. Funktioniert auch, außer das er jede 2. Abfrage mit der gleichen Adresse nicht öffnet, als Fehler erhalte ich eine endlos lange Meldung
| Zitat: |  | ---------------------------
WebServer
---------------------------
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
bei WebServer.WebServer.HTTPSession.sendHTMLResponse(String httpRequest) in D:\WebServer\WebServer\WebServer.vb:Zeile 136.
---------------------------
OK
---------------------------
|  |
in Zeile 136 steht:
Dim fileStream As New FileStream(httpRequest, FileMode.Open, FileAccess.Read, _
FileShare.Read) Womit kann das zusammenhängen?
Hier mal die gesamte Funktion:
' Send HTTP Response
Private Sub sendHTMLResponse(ByVal httpRequest As String)
Try
' Get the file content of HTTP Request
Dim fileStream As New FileStream(httpRequest, FileMode.Open, _
FileAccess.Read, FileShare.Read)
Dim streamReader As StreamReader = New StreamReader(fileStream, _
System.Text.Encoding.GetEncoding("iso-8859-1"), False)
Dim strBuff As String = streamReader.ReadToEnd
streamReader.Close()
streamReader.Dispose()
streamReader = Nothing
'fileStream.Flush()
fileStream.Close()
fileStream.Dispose()
fileStream = Nothing
' The content Length of HTTP Request
Dim respByte() As Byte = Encoding.GetEncoding( _
"iso-8859-1").GetBytes(strBuff)
' Set HTML Header
Dim htmlHeader As String = _
"HTTP/1.0 200 OK" & ControlChars.CrLf & _
"Server: WebServer 1.0" & ControlChars.CrLf & _
"Content-Length: " & respByte.Length & ControlChars.CrLf & _
"Content-Type: " & getContentType(httpRequest) & _
ControlChars.CrLf & ControlChars.CrLf
' The content Length of HTML Header
Dim headerByte() As Byte = Encoding.GetEncoding( _
"iso-8859-1").GetBytes(htmlHeader)
Console.WriteLine("HTML Header: " & ControlChars.CrLf & _
htmlHeader)
' Send HTML Header back to Web Browser
clientSocket.Send(headerByte, 0, headerByte.Length, _
SocketFlags.None)
' Send HTML Content back to Web Browser
clientSocket.Send(respByte, 0, respByte.Length, _
SocketFlags.None)
' Close HTTP Socket connection
Thread.Sleep(100)
clientSocket.Shutdown(SocketShutdown.Both)
clientSocket.Close()
Catch ex As Exception
Console.WriteLine(ex.StackTrace.ToString())
MsgBox(ex.StackTrace.ToString())
If clientSocket.Connected Then
clientSocket.Close()
End If
End Try
End SubFür Hilfe wäre ich sehr dankbar. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
| |
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|