移动到不同的 IIS 服务器后,在 IIS 中发布的 asp.net core web api 给出错误 500.19 (0x8007000d)

Mig*_*Mig 4 iis web-config visual-studio-2015 asp.net-core

我使用visual studio 2015在asp.net核心版本1.0.1中开发了一个web api,当我在开发它的同一台PC的IIS 10中发布web api时,一切正常。当我将web api的发布文件夹复制粘贴到另一台PC时出现问题,浏览器显示错误500.19内部服务器错误,错误代码0x8007000d,“请求的页面无法访问,因为页面的相关配置数据无效”,这会导致 web.config 中出现一些问题。我不认为 IIS 的版本是问题,因为从 IIS 10 移动到 IIS 8 或从 IIS8 移动到 IIS 10 会出现相同的错误,并且在两台装有 IIS 10 的电脑之间也会发生同样的情况。我已经审查了几个相关问题,例如,元素 'system.webServer' 有无效的子元素 ',以及其他与 web.config 文件相关的文件,其中似乎发现了错误。开发环境中的web.config文件为:

<?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <!--
    Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
    -->
     <system.webServer>
      <handlers>
       <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
      </handlers>
      <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
     </system.webServer>
    </configuration>
Run Code Online (Sandbox Code Playgroud)

发布 web api 后,web.config 文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!--
    Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
  -->
 <system.webServer>
  <handlers>
   <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
  </handlers>
  <aspNetCore processPath="dotnet" arguments=".\buildingSecureWebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
 </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

无论发布什么计算机,此 web.config 文件都具有相同的内容。

一些想法??我的问题的解决方案可能是什么,我需要在任何版本的 Windows 中安装 web api,直到现在它只能在开发的 pc 上正常工作。

Ape*_*lus 11

要获取更详细的错误消息:

  1. 验证日志目录是否存在于 Web 配置引用的路径中。如果没有,请创建它。配置中显示的路径会将“logs”目录放置在已部署站点的根文件夹中。

  2. 验证应用程序池是否具有对日志目录的写访问权限,并且

  3. 验证`stdoutLogEnabled="true"。

如果您已经验证了所有 3 个项目,那么您应该会获得包含更详细的错误描述的日志条目

什么可能导致“500.19 内部服务器错误,错误代码 0x8007000d”错误?

  • .NET Core 托管包未安装在部署站点的 Web 服务器上。要解决此问题,请获取此下载.NET Core Windows Server Hosting 包
  • 您可能还想验证 dotnet 可执行文件的路径是否存在于部署计算机的环境变量中。要检查这一点,首先要找到 dotnet.exe 的安装路径。它通常位于C:\Program Files\dotnet或 中C:\Program Files (x86)\dotnet。知道路径后,请确保该路径存在于您的环境变量中。

控制面板 > 系统 > 高级系统设置 > 环境变量。突出显示“路径”,单击“编辑”并验证 dotnet 文件夹的路径是否存在。如果不是,请添加它。对用户变量和系统变量执行相同的操作。重新启动机器并重试。