【问题标题】:asp.net core app deployed on iis meets 500 internal server erroriis上部署的asp.net核心应用遇到500内部服务器错误
【发布时间】:2016-09-30 07:14:46
【问题描述】:

:( 哎呀。 500内部服务器错误 启动应用程序时出错。

当我将数据库功能添加到我的 asp.net 核心应用程序并将其部署到 iis 时出现此消息。当我在 Visual Studio 中开发它时,一切都很顺利。但是部署后,出现了这个错误信息。

我尝试使用dotnet myapp.dll 在部署文件夹中运行我的应用程序,发现它运行良好。问题很可能与iis有关。我尝试将<compilation debug="true">..</compilation> 添加到web.config,但似乎没用。实际上是什么问题,或者有没有其他方法可以查看详细的错误信息以帮助了解发生了什么?

【问题讨论】:

  • 您是否在 web.config 中启用了<customErrors>
  • 不,我应该启用它吗?
  • 您是否在远程 IIS 服务器上安装了 ASP.NET Core 模块?如果没有,您应该这样做。
  • 我已经安装好了。问题已经解决了。我按照@Set 的回答找到了指示 sqlserver 异常的日志。还是谢谢你们

标签: c# iis asp.net-core


【解决方案1】:
  1. 将 stdoutLogEnabled="false" 更改为 true,然后检查 stdoutLogFile=".\logs\stdout" 处的日志。那里的错误可能会告诉你一些事情。

  2. 检查您是否使用ASPNETCORE_ENVIRONMENT 环境变量设置了正确的环境名称,以便使用连接字符串等正确设置。默认情况下,在您的机器上,您有“开发”环境。

  3. 您可以使用Error Handling middlewares 来显示异常,例如

    app.UseDeveloperExceptionPage();
    

【讨论】:

  • 非常感谢。我发现了日志,原因是 sqlserver 异常。我到了应用程序池并将其设置为本地系统,一切正常!顺便说一句,我在 Visual Studio 中更新了 asp.net 核心工具并重新部署并发现错误页面中显示的错误消息,而不仅仅是 500 server。多么可怕!
【解决方案2】:

有同样的问题。这是guide that helped me。请注意,我不想在 Web 服务器上安装“运行时”,而是将所有必要的文件部署为独立的应用程序。以下是更缩写形式的步骤:

  1. 在您的本地 PC 上,根据您的服务器确定要发布的版本。我的目标是 Windows Server 2008,R2,这意味着我需要发布 win7-x64。在项目目录中打开命令提示符并运行以下命令:

    dotnet 发布 -c 发布 -r win7-x64

    这将创建一个包含数百个 dll、一个 .exe 和 web.config 的发布文件夹,位于此处:bin\Release\netcoreapp2.0\publish

  2. 在带有 IIS 的 Web 服务器上,转到 this landing page。单击所需版本的链接。找到 Runtime and Hosting Bundle 的链接。点击下载并运行。

  3. 通过从提升的命令提示符运行此命令来重新启动 IIS:

    net stop was

    net start w3svc

  4. 将本地发布文件夹中的所有文件复制到 IIS 服务器上所需的应用程序文件夹。

  5. 在服务器上,打开 IIS,并像往常一样创建单独的 AppPool 和应用程序。对于 AppPool,在 Basic Settings 下,将 .NET Framework 版本更改为 No Managed Code。确保 IIS 中的应用程序指向您想要的文件夹和正确的 AppPool。

  6. 在浏览器中测试您的 Web 应用程序。

【讨论】:

【解决方案3】:

在我的情况下,我得到了这个,因为我实际上并没有在我运行它的 Windows 服务器上安装最新的“DotNetCore.2.0.0-WindowsHosting.exe”......所以它在我的本地运行良好机器在调试和服务器上的错误 5 hundy'ing。

我还有其他重要的问题来解决升级问题......如果可以的话,我建议避免它。

【讨论】:

【解决方案4】:

Mark333 下面的评论解决了我的问题。

引用方便阅读:

“我正在使用 Visual Studio 提供的正常发布。而且,我只是 发现使用最新版本的 Hosting Bundle 将修复 问题。对此 +1 microsoft.com/net/download/dotnet-core/runtime-2.1.0-rc1"

我必须安装 1.1,因为我的应用程序有点旧,但 Hosting Bundle 修复了它。在我的例子中,我们为官方环境部署到 Docker 映像,但是当我想在本地进行一些测试时,我会发布它并让我的本地 IIS 为其提供服务。

【讨论】:

    【解决方案5】:
    【解决方案6】:

    我在一台 Windows 2008 R2 Standard 机器上安装了 DotNetCore.2.0.5-WindowsHosting.exe 并遇到了同样的 http 500 错误。日志记录没有帮助(生成了空白日志 - 事件查看器日志是通用的 ErrorCode = 0x80070002

    我必须做两件事来解决我的问题:

    1. 为 ApplicationPoolIdentity 用户(例如:IIS APPPOOL\AppPoolIdentityName)授予网站目录和应用程序目录的读取权限
    2. 我不得不在服务器管理器下安装 IIS ASP Core(这感觉很奇怪,但确实有效!)

    【讨论】:

    • 只需要在 Core 2.2 上的 VS2017 中执行从基本发布到文件的第 1 步
    【解决方案7】:

    我遇到了同样的问题。

    我的问题是我到 db 的连接字符串没有在 appsettings.production.json 中设置

    内部服务器错误 500 是模糊的错误消息。

    更改 stdoutLogEnabled = true 对我没有任何作用,所以我没有看到任何有关错误的信息。

    【讨论】:

    • stdoutlog 也不适合我。你有没有想出任何其他的解决方案
    【解决方案8】:

    我遇到了这个问题。问题是由于我的本地 Sql Server 实例造成的。不允许远程连接。所以我手动重启了 SQL 实例,我的 App 重启就可以正常工作了。

    【讨论】:

      【解决方案9】:

      在进行 AWS ec2 实例引导时使用巧克力安装 dotnetcore-windowshosting 后,我遇到了类似的问题。

      当我检查我的 IIS 模块时,缺少 AspNetCoreModule。

      这解决了我的问题。 https://github.com/aspnet/IISIntegration/issues/434

      我不得不卸载巧克力包,重新启动机器并重新安装。

      希望这会有所帮助!

      【讨论】:

        【解决方案10】:

        确保应用程序池有权访问您的应用程序所在的文件夹。

        【讨论】:

          【解决方案11】:

          我强烈推荐一篇名为“配置 IIS、ASP.NET 和 SQL Server”的文章。 我按照那里描述的步骤操作,我的 asp.net 核心应用程序现在与我的 SQL 数据库通信(在发布到 IIS 之后):

          https://www.codeproject.com/Articles/674930/Configuring-IIS-ASP-NET-and-SQL-Server

          【讨论】:

            【解决方案12】:

            在我的例子中,我创建了一个 .NET 5 单文件输出,我得到了:

            500 - Internal server error.
            There is a problem with the resource you are looking for, and it cannot be displayed.
            

            问题原来是 EXE 文件由于某种奇怪的原因被保护软件 (CrowdStrike Falcon) 识别为病毒。没有“单个文件输出”选项的重建解决了这个问题。

            【讨论】:

              猜你喜欢
              • 2019-05-28
              • 1970-01-01
              • 1970-01-01
              • 2012-10-27
              • 1970-01-01
              • 2019-05-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多