如何在C#中将asp文件作为Web服务器运行?

时间:2010-06-23 23:41:18

标签: c# webserver

我想通过C#编写一个可以处理asp请求的Web服务器。 我怎么能这样做?

2 个答案:

答案 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。

如果您希望了解基础知识(从教育角度来看),您可以在此处查看示例:

http://www.asp.net/downloads/archived-v11/cassini