【问题标题】:HTTP Error 500.0 - ASP.NET Core IIS hosting failure (in-process) in Dot net core 3.1HTTP 错误 500.0 - Dot net core 3.1 中的 ASP.NET Core IIS 托管失败(进程中)
【发布时间】:2021-07-21 15:21:53
【问题描述】:

**我已经检查了所有可能的方法来解决这个错误,比如

  1. 安装dot net core 3.1运行环境
  2. 将 AspNetCoreHostingModel 设置为 OutProcess 但是当我尝试在 IIs 上设置我的 Default Nopcommerce 4.3 项目以在其上运行时仍然出现此错误。 请帮忙,因为我已经花了太多时间来解决这个错误**

【问题讨论】:

  • 检查 IIS 事件查看器是否有错误以获取更多信息。您在 IIS 中遇到异常。问题可能是您正在尝试访问 IIS 文件系统并且没有访问文件系统的凭据。您是否发布并安装了 setup.exe 文件夹?如果构建机器和远程机器上的 Net 版本相同,则 Net 应用程序只会在部署机器上运行。所以核心版本必须相同。您还可以将异常堆栈跟踪添加到响应正文中,以便确定问题的确切原因。
  • @jdweng 我不发布。它是默认的 nopcommerce 4.3,所以我将它作为 localhost 安装在 iis 上
  • “我的默认 Nopcommerce 4.3 项目”是什么意思?听起来你正在做两件事 1) 安装 Nopcommerce 4.3 2) 安装一个调用 Nopcommerce 4.3 的 c# 应用程序。
  • 是的,我正在安装 Nopcommerce 4.3 项目,该项目构建在 IIS 上的 dot net core 3.1 中
  • 我认为 Net 3.1.14 有问题(请参阅 dotnet.microsoft.com/download/dotnet/3.1?force_isolation=true)。您需要下载与您构建的 Core 3.1 兼容的运行时版本。在过去的几周里,我已经回答了几个与您类似的问题。如果您查看 3.1.13 的链接,它会显示“在 Windows 上,我们建议安装 Hosting Bundle,其中包括 .NET Runtime 和 IIS 支持。” 3.1.14 的说法不一样。您可能想尝试较早版本的 Core 3.1。我认为 3.1.14 中缺少一些东西。

标签: c# asp.net-mvc .net-core nopcommerce-4.3


【解决方案1】:

ASP.NET Core 3.1 运行时 (v3.1.6) - Windows 托管包

您可以从here下载。

【讨论】:

  • 仍然存在同样的问题
  • 它解决了我的 .net core 3.1 问题
【解决方案2】:

我在 .net core 3.1 中也发生了同样的事情。 就我而言,缺少一些服务器角色和功能

检查应用程序事件日志我发现错误“0x8007023e”

查看系统事件日志发现WAS(Windows Process Activation Service)通信错误:

然后我安装了以下角色和功能:

我还重新安装了 ASP.NET Core 模块(是插入 IIS 管道的本机 IIS 模块,允许 ASP.NET Core 应用程序与 IIS 一起工作)

最后我不得不将应用程序池重新分配给站点,一切正常(我使用的是 InProcess 模型)

【讨论】:

    【解决方案3】:

    我费了很大劲才找到这个问题的解决方案。经过4 5天的研究,我知道了确切的解决方案。请按照以下所有步骤操作,它肯定适用于使用 dotnetcore 3.1 或普通 dotnetcore 3.1 项目的 Nopcommerce 4.3 问题。

    Step1 : 使用 cmd 检查 dotnet 版本和 sdk

    第 2 步:添加 IISUSER 或者您也可以授予所有人访问主文件夹的权限

    第三步:如果是nopcommerce 4.3项目则配置路径

    并粘贴到 bin->debug->netcoreapp3.1

    中的文件夹下方

    App_Data,Views,wwwroot,Plugins,Themes,logs,Areas/Views,web.config

    注意:这是在bin->debug->netcoreapp3.1

    下添加web.config后的主要解决方案
    <aspNetCore processPath="C:\Program Files\dotnet\dotnet.exe" arguments=".\Nop.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" startupTimeLimit="3600" hostingModel="InProcess">
    

    注意:如果您已经在 iis 中配置了您的网站,请执行最后一步 使用cmd重置iis。 以管理员身份打开 cmd 并运行命令 iisreset

    我希望这能解决您的所有问题

    【讨论】:

      【解决方案4】:

      如果正确安装了 .net SDK,但没有抛出相同的错误。然后请检查您是否选择了专用的应用程序池,并且选择了 CLI 版本为无托管代码。

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      【解决方案5】:

      在我的例子中,它是 web.config 文件。我的网站作为应用程序托管在另一个网站(应用程序文件夹)中。添加带有 inheritInChildApplication="false" 的“位置”标签为我解决了这个问题。

      <location path="." inheritInChildApplications="false">
        <system.webServer>
          <!-- other configs -->
        </system.webServer>
      </location>
      

      【讨论】:

        【解决方案6】:

        我今天刚遇到这个问题,在这个问题上使用Rick Strahl's Blog Post进行排查。

        最终,事实证明,使用 Windows 事件日志 对查找实际错误最有帮助,对我来说,这是web.config 中的错误行。这是针对应用程序的.exe 而不是.dll(发布为依赖于框架而不是独立的)。因此,IIS 甚至无法执行任何操作,甚至没有登录到 STDOUT 或给出更具描述性的错误。

        一个简短的例子是我有这个:

        <aspNetCore processPath=".\MyApp.exe" ... />
        

        而不是这个:

        <aspNetCore processPath="dotnet" 
                    arguments=".\MyApp.dll" ... />
        

        由于.exe 不存在,IIS 抛出错误。

        【讨论】:

          猜你喜欢
          • 2020-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-11
          • 2020-08-23
          • 1970-01-01
          • 2019-09-22
          相关资源
          最近更新 更多