Как запустить ASP-файл в качестве веб-сервера в C #? - PullRequest
1 голос
/ 24 июня 2010

Я хочу написать веб-сервер на C #, который может обрабатывать запросы asp.как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 24 июня 2010

Среда выполнения ASP.Net может быть размещена любым процессом, который вам нужен, и на самом деле это довольно просто сделать.Ключ в использовании HttpRuntime класса.

Из моего ответа на тему " Скрытые возможности 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, чтобы сократить ваши страницы длявы, и напишите всю свою собственную логику о том, как обслуживать их.

2 голосов
/ 24 июня 2010

Как уже просили другие, вы должны использовать встроенный в Visual Studio сервер или другие веб-серверы, такие как IIS или apache.

Если вы хотите изучить основы (с образовательной точки зрения), вы можете посмотреть образец здесь:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...