0
我試圖託管一個可以通過瀏覽器查看的文本文件。該服務器將在WindowsCE機器上運行。使用網絡服務器在WindowsCE上託管一個文本文件
目前,當我嘗試在我的Windows 7機器上使用Internet Explorer 9查看文件時,它工作正常。 一旦我將它託管在WindowsCE Internet Explorer上,就等着工作圈在旋轉。
如果我運行在端口80遠程登錄到Web服務器,我可以看到返回我的文本文件:
HTTP/1.1 200 OK
Content-Type: text/plain
MyTextFileContents
下面是完整的方法。沒有例外記錄,並且記錄「完成的服務日誌」。
static void launchLogWebServer()
{
new Thread(delegate()
{
LogIt(0, "Starting Log Server");
TcpListener server = new TcpListener(IPAddress.Any, 80);
server.Start();
TcpClient newConn;
while (true)
{
try
{
newConn = server.AcceptTcpClient();
LogIt(0, "Connection Made to Log Server");
NetworkStream stream = newConn.GetStream();
StreamReader sr = new StreamReader(stream);
StreamWriter sw = new StreamWriter(stream);
sw.WriteLine("HTTP/1.1 200 OK");
sw.WriteLine("Content-Type: text/plain");
sw.WriteLine();
String line = null;
while ((line = sr.ReadLine()).Length != 0)
{
}
string text = string.Empty;
LogIt(0, "Reading Log File");
try
{
using (StreamReader logReader = new StreamReader("mylog.log"))
{
text = logReader.ReadToEnd();
logReader.Close();
}
}
catch (Exception ex)
{
LogIt(0, ex.ToString());
text = ex.ToString();
}
LogIt(0, "Completed Reading Log File");
sw.WriteLine(text);
sw.Flush();
newConn.Close();
LogIt(0, "Finished serving log");
}
catch(Exception ex)
{
LogIt(0, ex.ToString());
}
}
}).Start();
}
編輯:我還應該注意到我的WindowsCE運行.NET Compact Framework 2.0中
你可以嘗試在HTTP頭中指定'Content-Length'嗎? – Yogee
賓果。那是Yogee。你能否將你的評論改爲答案,以便我可以將其標記爲正確。 – CathalMF