我试图托管一个可以通过浏览器查看的文本文件。该服务器将在 WindowsCE 机器上运行。
目前,当我尝试使用 Internet Explorer 9 在我的 Windows 7 机器上查看文件时,它工作正常。一旦我在 WindowsCE Internet Explorer 上托管它,就坐在那里等待工作圈旋转。
如果我在端口 80 上运行 telnet 到网络服务器,我可以看到我的文本文件被返回:
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