第一次请求到IIS Express失败,503服务不可用,第二次成功

每次我从Visual Studio 2010启动我的ASP.Net MVC 3应用程序,IIS Express启动和IE自旋等待。 请求失败,HTTP 503服务不可用。 我在IE浏览器中刷新,请求成功。 所有后续请求都会成功,直到停止debugging。 下一次我开始debugging,第一个请求再次失败。

有没有人经历过这个?

在IISExpress \ applicationhost.config中我有:

<site name="ProjectName" id="6"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="c:\users\chris\dropbox\code\2010\SolutionName\ProjectName" /> </application> <bindings> <binding protocol="http" bindingInformation="*:80:laptop" /> </bindings> </site> 

我在我的主机文件中有这个:

 127.0.0.1 laptop 

我的项目设置为从IIS Express开始,Project Url设置为:

 http://laptop 

很奇怪,只有第一个请求失败了,或许Visual Studio没有等待IIS Express的启动呢? 有没有办法让它等待?

停止debugging,进行更改,然后重新开始是我做的最常见的任务之一,因此添加另一个步骤让它非常烦人。

IIS Express支持失败的请求跟踪,并且默认情况下已打开。 日志写入通常位于以下位置的%IIS_USER_HOME%\TraceLogFiles

 %USERPROFILE%\Documents\IISExpress\TraceLogFiles 

在该文件夹中,您将看到在IIS Express中运行的每个项目的子文件夹列表。 在每个站点的文件夹中应该有一堆frXXXXX.xml文件和一个freb.xsl文件。

使用Firefox或Internet Explorer,打开时间戳最接近503错误的frXXXXX.xml文件。 一旦打开,你会看到如下所示:

在这里输入图像说明

希望你应该发现503错误的原因。

您也可以尝试从命令行手动启动IIS Express 。

 C:\Program Files (x86)\IIS Express>iisexpress /path:"[PATH]" /port:16444 

其中[PATH]是包含站点代码,web.config等项目文件夹的文件系统path,例如在您的情况下,它将是:

 c:\users\chris\dropbox\code\2010\SolutionName\ProjectName 

这可能会引发一些有趣的错误,如果IIS Express无法第一次启动该网站。

顺便说一下,您还可以告诉Visual Studio“附加到进程”并开始以这种方式进行debugging。

您需要采取的首要行动是确定实际发生的事情。

为此,打开本地请求的详细错误页面:

 appcmd.exe set config -section:system.webServer/httpErrors -errorMode:DetailedLocalOnly /commit:apphost 

现在,所有400和500类的http返回将导致IIS显示更详细的错误页面。