每次我从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显示更详细的错误页面。