ASP.NET 5启动应用程序时发生错误

pai*_*yff 20 c# asp.net iis-7.5 dnx asp.net-core

发布ASP.NET Web App后,我正在尝试在本地服务器上托管该网站.但是,当我启动它时,它在我的浏览器中给出了这个错误:

哎呀.500内部服务器错误启动应用程序时发生错误.

如何调试此错误是什么?在Visual Studio中开始使用IISExpress和"web"时,该网站可以工作(包括调试和发布配置).

我正在使用开发环境,我已经指定了app.UseDeveloperExceptionPage();.

我已按照此处的说明部署到IIS.

我也尝试了这里提供的建议(选择"删除发布前删除所有现有文件"重新发布).(OP有一个稍微不同的错误,所以这就是我发布一个新问题的原因.)

我在网上看了几个小时,但似乎没有太多关于它的内容.有任何想法吗?

我在Windows 7上,使用ASP.NET 5 RC1.

Muq*_*han 35

您应该stdoutLogEnabled=true在web.config文件中设置以查看正在发生的实际错误.您可以使用stdoutLogFile参数指定这些文件的写入位置; 下面的截图示例写入stdoutLogFile=".\logs\stdout".(您应该确保目录存在;应用程序不会创建它)

至于无法找到正确的配置文件是的默认环境是生产.它在项目属性中的visual studio中显式设置为开发.

更新:在AspNetCore RTM中,模块在web.config中的system.webServer节点下称为aspnetCore.另外,正如@ErikE在评论中指出的那样,web.config现在位于项目的根目录中,而不是像以前版本中的wwwroot.

在此输入图像描述

  • 还有一个可能包含在答案中的提示,web.config文件中的aspNetCore元素还包含一个"stdoutLogFile"属性,该属性指定了日志写入的文件夹.如果这个文件夹还不存在,IIS将不会为你创建它(这对我来说有点混乱......我想知道为什么我没有得到任何日志,即使我有stdoutLogEnabled ="true"). (5认同)
  • 在wwwroot文件夹中,web.config将包含httpPlatform部分.此部分将具有stdoutLogEnabled属性.它的默认值为false,将其更改为true.执行此操作后重新启动Web池,它会抛出错误,确保在任务mgr中杀死所有w3wp.exe和dnx.exe实例. (3认同)
  • <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments= ".\your-project.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" /> </system.webServer> (3认同)

小智 8

当您尝试从启动时的数据库连接(例如,用于种子设定)时,也会发生此错误,并且由于数据库服务器上的不足,它在部署服务器上失败.