什么进程返回“(404)Not Found”错误

时间:2009-09-11 22:36:29

标签: c# iis-7

我有一个简单的测试应用程序(C#控制台应用程序),它对.NET资源执行HTTP GET:

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?

是包含IIS服务的svchost.exe吗?

背景资料:
我在Windows 7(x64)Professional上运行IIS 7下的Default.aspx页面。

WebException正在“req.GetResponse()”行中抛出。

3 个答案:

答案 0 :(得分:2)

出现了更多线索:

查看以下post from Mike Volodarsky

  

从Windows 2003开始,IIS使用   要监听的http.sys内核驱动程序   对于请求,以及W3SVC服务   将其配置为侦听请求   与...相关的所有绑定端点   你的网站。在IIS7上,服务在做   大部分工作现在称为WAS   (即使需要W3SVC)。一个   配置错误可能导致   WAS / W3SVC无法启动站点,并且   因此http.sys将不会收到   在其端点上的请求。也,   该网站有机会   定义本身缺失,或者   网站没有定义权利   绑定。

甚至是tool to configure the http.sys driver

答案 1 :(得分:0)

您正在向机器发送“愤怒”请求。这与您停止IIS的机器相同吗?

答案 2 :(得分:0)

我相信(如果你真的连接到一个根本没有响应的服务器),可能是.NET网络堆栈本身就抛出异常 - 可能与连接超时有关。

相关问题