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

Chr*_*ini 5 asp.net-mvc iis-express

每次我从 Visual Studio 2010 启动我的 ASP.Net MVC 3 应用程序时,IIS Express 都会启动并且 IE 会旋转等待。请求失败,HTTP 503 服务不可用。我在 IE 中点击刷新,请求成功。所有后续请求都会成功,直到我停止调试。下次我去开始调试时,第一个请求又失败了。

有没有其他人经历过这种情况?

在 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>
Run Code Online (Sandbox Code Playgroud)

我的主机文件中有这个:

127.0.0.1    laptop
Run Code Online (Sandbox Code Playgroud)

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

http://laptop
Run Code Online (Sandbox Code Playgroud)

很奇怪,只有第一个请求失败,也许是因为 Visual Studio 没有等待足够长的时间让 IIS Express 启动?有没有办法让它等待?

停止调试,进行更改,然后重新开始是我所做的最常见的任务之一,因此添加另一个步骤来实现这一目标非常烦人。

Kev*_*Kev 13

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

%USERPROFILE%\Documents\IISExpress\TraceLogFiles
Run Code Online (Sandbox Code Playgroud)

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

使用 Firefox 或 Internet Explorer,打开frXXXXX.xml时间戳最接近出现这些 503 错误时的文件。打开后,您将看到类似以下内容:

在此处输入图片说明

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

您还可以尝试从命令行手动为您的项目启动 IIS Express

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

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

c:\users\chris\dropbox\code\2010\SolutionName\ProjectName
Run Code Online (Sandbox Code Playgroud)

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

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