ASP.NET MVC 5 服务不可用
ASP.NET MVC 5 Service Unavailable
过去一年半我一直在研究 VS2015 解决方案,直到突然间我无法再调试我的 ASP.NET MVC 5 应用程序。当我按 F5 键时,应用程序在浏览器中打开一个新选项卡并且只呈现以下内容:
The service is unavailable.
在事件日志中,我看到了这个:
Event code: 1002
Event message: Application is shutting down. Reason: Initialization error.
Event time: 19/09/2016 7:08:40
Event time (UTC): 19/09/2016 12:08:40
Event ID: 441a1c0336a84c5ba5660270208e832e
Event sequence: 3
Event occurrence: 1
Event detail code: 50014
Application information:
Application domain: /LM/W3SVC/2/ROOT-1-131187604982350160
Trust level: Full
Application Virtual Path: /
Application Path: *ommitted*
Machine name: *ommitted*
Process information:
Process ID: 1892
Process name: iisexpress.exe
Account name: *ommitted*
Custom event details:
我使用 IIS Express 10 进行开发。在此过程中,跟踪日志文件中仅出现 1 个警告:
ModuleName: AspNetInitializationExceptionModule
Notification: BEGIN_REQUEST
HttpStatus: 503
HttpReason: Service Unavailable
HttpSubStatus:0
ErrorCode: De bewerking is voltooid. (0x0)
VS 2015 应用程序配置文件站点的配置:
<site name="MyApp" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="D:\Source\MyApp" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:52543:localhost" />
</bindings>
</site>
我也按照建议查看了 URL 保留 here 但是没有任何包含端口 52543 的 url。我尝试完全更改端口但结果是一样的,所以我不要认为这是问题所在。
我不记得做过什么不同的事情。我创建了一个新的 ASP.NET 核心项目,但这不应该是根本原因。我的其他项目好像没有出现这个问题,所以只有这个解决方案。
最后,调试过程开始顺利,因为它命中了 MVC 应用程序的构造函数(HttpApplication 的子 class),但是一旦构造函数完成,此后就什么也没有发生了。
有什么建议吗?
ASP.NET MVC 5 项目中有很多东西会给您的代码带来麻烦。
删除 .vs 文件夹。在我的例子中,我从其他人那里得到了代码,并将它的路径设置为她的机器,所以在我删除它之前它不会工作。
从文档文件夹中删除 "IISExpress" 文件夹。可能是配置文件有问题。
显然这个问题只是暂时的,我无法确定到底发生了什么。我唯一让它工作的事情就是将这个条目添加到配置中:
<binding protocol="http" bindingInformation="*:52543:myipaddress" />
在我运行解决了一次之后,IIS Express好像突然想起了如何做它的工作,让上面的条目变得多余。
过去一年半我一直在研究 VS2015 解决方案,直到突然间我无法再调试我的 ASP.NET MVC 5 应用程序。当我按 F5 键时,应用程序在浏览器中打开一个新选项卡并且只呈现以下内容:
The service is unavailable.
在事件日志中,我看到了这个:
Event code: 1002
Event message: Application is shutting down. Reason: Initialization error.
Event time: 19/09/2016 7:08:40
Event time (UTC): 19/09/2016 12:08:40
Event ID: 441a1c0336a84c5ba5660270208e832e
Event sequence: 3
Event occurrence: 1
Event detail code: 50014
Application information:
Application domain: /LM/W3SVC/2/ROOT-1-131187604982350160
Trust level: Full
Application Virtual Path: /
Application Path: *ommitted*
Machine name: *ommitted*
Process information:
Process ID: 1892
Process name: iisexpress.exe
Account name: *ommitted*
Custom event details:
我使用 IIS Express 10 进行开发。在此过程中,跟踪日志文件中仅出现 1 个警告:
ModuleName: AspNetInitializationExceptionModule
Notification: BEGIN_REQUEST
HttpStatus: 503
HttpReason: Service Unavailable
HttpSubStatus:0
ErrorCode: De bewerking is voltooid. (0x0)
VS 2015 应用程序配置文件站点的配置:
<site name="MyApp" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="D:\Source\MyApp" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:52543:localhost" />
</bindings>
</site>
我也按照建议查看了 URL 保留 here 但是没有任何包含端口 52543 的 url。我尝试完全更改端口但结果是一样的,所以我不要认为这是问题所在。
我不记得做过什么不同的事情。我创建了一个新的 ASP.NET 核心项目,但这不应该是根本原因。我的其他项目好像没有出现这个问题,所以只有这个解决方案。
最后,调试过程开始顺利,因为它命中了 MVC 应用程序的构造函数(HttpApplication 的子 class),但是一旦构造函数完成,此后就什么也没有发生了。
有什么建议吗?
ASP.NET MVC 5 项目中有很多东西会给您的代码带来麻烦。
删除 .vs 文件夹。在我的例子中,我从其他人那里得到了代码,并将它的路径设置为她的机器,所以在我删除它之前它不会工作。
从文档文件夹中删除 "IISExpress" 文件夹。可能是配置文件有问题。
显然这个问题只是暂时的,我无法确定到底发生了什么。我唯一让它工作的事情就是将这个条目添加到配置中:
<binding protocol="http" bindingInformation="*:52543:myipaddress" />
在我运行解决了一次之后,IIS Express好像突然想起了如何做它的工作,让上面的条目变得多余。