dotnet core 2.1应用程序的“ HTTP错误502.5-进程失败”

时间:2019-05-31 23:08:56

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

从错误日志中:- 未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集'System.Runtime,版本= 4.2.1.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。系统找不到指定的文件。

据我了解,我需要在app.config中进行更改以匹配版本,但是找不到app.config。

我的web.config(如果发现任何错误,则发布整个文件)


<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <modules>

      <!-- Remove WebDAV module so that we can make DELETE requests -->
      <remove name="WebDAVModule" />
    </modules>
    <handlers>
      <!-- Remove WebDAV module so that we can make DELETE requests -->
      <remove name="WebDAV" />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <!-- When deploying on Azure, make sure that "dotnet" is installed and the path to it is registered in the PATH environment variable or specify the full path to it -->
    <aspNetCore requestTimeout="23:00:00" processPath="D:\******ini_nc\Presentation\Nop.Web\bin\Release\netcoreapp2.1\Nop.Core.dll" arguments="dotnet" forwardWindowsAuthToken="false" stdoutLogEnabled="True" stdoutLogFile=".\logs\stdout" startupTimeLimit="3600">
      <environmentVariables />
    </aspNetCore>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
      </customHeaders>
    </httpProtocol>
        <directoryBrowse enabled="true" />
  </system.webServer>
    <system.web>
        <identity impersonate="true" />
    </system.web>

</configuration>

1 个答案:

答案 0 :(得分:0)

我不建议对发布时自动生成的文件(例如web.config)进行更改。这是一个如何在.net核心中替换.net框架的web.config的小例子。

  • 可以从.csproj文件中设置项目级别的配置(例如.net core或c#版本)
  • 可以从程序中设置
  • 与Web启动相关的配置(例如将IConfiguration链接到自定义源)。cs
  • 可以从启动cs类设置与中间件和应用程序相关的配置(例如映射数据库连接字符串)

对于您的情况,请检查服务器是否具有所需的运行时。如果可能,请从服务器中的dot.net/core安装所需的.net core运行时。如果由于权限等原因无法安装此程序,则可以降级您的应用程序版本或使用独立的发布。

降级应用版本

请记住,这意味着您将丢失版本特定的代码。如果您已经有很多特定于版本的代码,则不建议这样做。这可以通过更新.csprog文件来完成。与.net框架不同。在.net core中更新此文件被认为是干净安全的。

**独立发布**

此选项旨在在未安装任何.net核心的系统上工作。它通过将包含所有.net Core运行时相关文件的已发布文件创建到一个巨大的publish文件夹中而起作用。因此,请记住,发布文件夹会很大。看看这个以获得更多信息https://docs.microsoft.com/en-us/dotnet/core/deploying/