Какой процесс возвращает ошибку "(404) Not Found" - PullRequest
2 голосов
/ 12 сентября 2009

У меня есть простое тестовое приложение (консольное приложение C #), которое выполняет HTTP-GET для ресурса .NET:

static void Main(string[] args)
    {
        while (true)
        {
            try
            {
                System.Net.WebRequest req = System.Net.WebRequest.Create("http://ranger/roztest/Default.aspx");

                System.Net.WebResponse resp = req.GetResponse();
                System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());

                Console.WriteLine(DateTime.Now.Ticks.ToString() + " - " + sr.ReadToEnd().Trim());
            }
            catch (Exception ex)
            {
                Console.WriteLine(DateTime.Now.Ticks.ToString() + " - " + "An Exception has occured: " + ex.GetType().ToString() + " - " + ex.Message);
            }

            Thread.Sleep(2000);
        }
    }

Если я выполню следующую команду:

net stop w3svc

IIS остановится. Утилита командной строки, которую я написал, вернет исключение System.Net.WebException "(404) Not Found".

Если IIS остановлен, какой процесс возвращает эти 404?

Это svchost.exe, который содержал службу IIS?

Справочная информация:
Я запускаю эту страницу Default.aspx в IIS 7 в Windows 7 (x64) Professional.

WebException создается в строке "req.GetResponse ()".

Ответы [ 3 ]

2 голосов
/ 12 сентября 2009

Появляется больше подсказок:

Ознакомьтесь со следующим сообщением от Майка Володарского :

Начиная с Windows 2003, IIS использует драйвер ядра http.sys для прослушивания для запросов, а сервис W3SVC для настроить его для прослушивания запросов на все связывающие конечные точки, связанные с твой сайт. На IIS7, сервис делает большая часть работы теперь называется WAS (хотя W3SVC пока необходим). ошибка конфигурации может вызвать WAS / W3SVC не удалось запустить сайт, и поэтому http.sys не получит запросы на его конечных точках. Также, есть вероятность, что сайт само определение отсутствует, или сайт не определяет право привязок.

И даже инструмент для настройки драйвера http.sys .

0 голосов
/ 12 сентября 2009

Я полагаю (если вы действительно подключаетесь к серверу, который просто не отвечает), возможно, сам сетевой стек .NET вызывает исключение - вероятно, это связано с таймаутом соединения.

0 голосов
/ 12 сентября 2009

Вы отправляете запрос механизированному «рейнджеру». Это то же самое, что и машина, на которой вы остановили IIS?

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