我想通过C#编写一个可以处理asp请求的Web服务器。 我怎么能这样做?
答案 0 :(得分:4)
ASP.Net运行时可以由您喜欢的任何进程托管,而且实际上非常简单。关键是使用HttpRuntime类。
根据我对“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运行时来为您处理页面,并自行编写如何为他们服务的逻辑。
答案 1 :(得分:2)
正如其他人所问,您应该使用Visual Studio内置服务器或其他Web服务器,如IIS或Apache。
如果您希望了解基础知识(从教育角度来看),您可以在此处查看示例: