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

时间:2016-02-26 23:42:56

标签: c# asp.net iis-7.5 asp.net-core dnx

发布ASP.NET Web App后,我试图在本地服务器上托管该网站。但是,当我启动时,它会在浏览器中显示此错误:

  

糟糕。 500内部服务器错误启动时出错   应用

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

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

我已按照说明here部署到IIS。

我还尝试了here提供的建议(使用&#34重新发布;在发布之前删除所有现有文件"已选中)。 (OP的错误略有不同,这就是我发布新问题的原因。)

我在互联网上寻找了几个小时,但似乎并没有太多关于它的内容。有什么想法吗?

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

4 个答案:

答案 0 :(得分:34)

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

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

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

enter image description here

答案 1 :(得分:8)

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

答案 2 :(得分:2)

在多种情况下会发生此错误。在我的情况下,我没有正确设置数据库连接字符串。我在Visual Studio 2017中修复了它,如下所示:

1)右键单击项目,选择“发布”,在主区域中打开“发布”页面。

2)选择左侧的“发布”标签

3)在摘要部分下,有一个“设置...”链接。点击它。这将打开“发布”对话框。

4)点击左侧的“设置”标签。

5)展开“文件发布选项”,选中“删除目的地的其他文件”

6)展开数据库,选中“在运行时使用此连接字符串”(这是根据我最初设置发布选项的方式预先填充了我的Azure SQL连接字符串)

7)展开“实体框架迁移”,选中“在发布时应用此迁移”(再次,预先填充连接字符串)

8)点击保存

9)发布

10)交叉手指

答案 3 :(得分:0)

问题:此错误很可能是由于Application Pool Identities的权限不足造成的。要了解:

转到Windows 任务管理器并在详细信息选项卡/进程(取决于Windows操作系统)下查找w3wp.exe并在User name下查找您的应用程序(<App_Pool_Name>通常DefaultAppPool)作为IIS Worker Process在那里运行。如果您的应用程序未在此处列出,则该应用程序对您的数据库没有足够的权限。

要解决此问题:执行以下操作并授予您对应用的完全权限:

转到 SQL Server Management Studio ,然后以管理员的身份登录安全&gt; 登录&gt;右键单击登录并添加New Login

常规:

  • Login Name: 输入 IIS APPPOOL\<App_Pool_Name>通常DefaultAppPool

  • Default Database:指向<Your_App_Database>

用户映射下:

    方框Users mapped to this login:

    上的
  • - 选中框以映射到<Your_App_Database>

    - 在用户输入 IIS APPPOOL\<App_Pool_Name>通常DefaultAppPool

    - 默认架构输入 dbo

  • 方框Database role membership for: <Your_App_Database>

    上的
  • - 检查以下框:db_datareaderdb_datawriterpublic

点击 确定

现在尝试访问您的应用程序,它应该可以工作!!!