我想用 C# 编写一个可以处理 asp 请求的 Web 服务器。 我该怎么做?
请您参考如下方法:
ASP.Net 运行时可以由您喜欢的任何进程托管,而且实际上做起来非常简单。关键在于使用 HttpRuntime类。
来 self 在“Hidden Features of ASP.Net”主题的回答:
public class HostingClass : MarshalByRefObject
{
public void ProcessPage(string url)
{
using (StreamWriter sw = new StreamWriter("C:\temp.html"))
{
SimpleWorkerRequest worker = new SimpleWorkerRequest(url, null, sw);
HttpRuntime.ProcessRequest(worker);
}
// Ta-dah! C:\temp.html has some html for you.
}
}
然后在您的网络服务器类中:
HostingClass host = ApplicationHost.CreateApplicationHost(typeof(HostingClass),
"/virtualpath", "physicalPath");
host.ProcessPage(urlToAspxFile);
显然这并不是一个真正的网络服务器,但它显示的是处理对 aspx 页面的请求、解析页面并将结果转储到文本文件。
要编写一个真正的服务器,您显然需要开始监听和接受来自套接字连接的请求,但关键是您可以轻松地利用 asp.net 运行时为您处理页面,并编写您自己的所有内容如何为他们提供服务的逻辑。
