繁体   English   中英

ASP.NET 5 启动应用程序时出错

[英]ASP.NET 5 An error occurred while starting the application

发布 ASP.NET Web 应用程序后,我试图在我的本地服务器上托管该网站。 但是,当我启动它时,它在我的浏览器中给我这个错误:

哎呀。 500 Internal Server Error 启动应用程序时发生错误。

我该如何调试这个错误是什么? 在 Visual Studio 中开始使用 IISExpress 和“web”时,该网站可以正常工作(调试和发布配置)。

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

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

我也尝试过此处提供的建议(重新发布时选择了“发布前删除所有现有文件”)。 (那里的 OP 有一个稍微不同的错误,所以这就是为什么我要发布一个新问题。)

我在 inte.net 上找了几个小时,但似乎没有太多内容。 有任何想法吗?

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

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

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

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

在此输入图像描述

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

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

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

2)选择左侧的“发布”选项卡

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

4)单击左侧的“设置”选项卡。

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

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

7)展开Entity Framework Migrations,选中“在发布时应用此迁移”(同样,预先填充了连接字符串)

8)单击“保存”

9)发布

10)交叉你的手指

我遇到了同样的问题。 查看日志,发现里面config.json => HostConfig FileUpload path (pointing local drive) 不正确。 并创建问题以重新启动应用程序。 结论:这个问题可能有多种原因。

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

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

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

转到SQL Server Management Studio并以管理员身份登录打开安全性 > 登录 >右键单击登录并添加New Login

一般情况下:

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

  • 对于Default Database:指向<Your_App_Database>

用户映射下

  • 在框上Users mapped to this login:

    - 选中 Map to <Your_App_Database>

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

    - 在默认架构下输入 dbo

  • 在“ Database role membership for: ”框中Database role membership for: <Your_App_Database>

    - 检查以下框: db_datareaderdb_datawriterpublic

单击 确定

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM