移动到其他IIS服务器pc后,IIS中发布的asp.net核心web api出现错误500.19(0x8007000d)

移动到其他IIS服务器pc后,IIS中发布的asp.net核心web api出现错误500.19(0x8007000d),iis,visual-studio-2015,asp.net-core,web-config,Iis,Visual Studio 2015,Asp.net Core,Web Config,我使用visual studio 2015在asp.net core 1.0.1版中开发了一个web api,当我在开发web api的同一台pc的IIS 10中发布该web api时,一切正常。当我将web api的发布文件夹复制并粘贴到另一台pc上时,出现问题,浏览器显示错误500.19内部服务器错误,错误代码0x8007000d,“无法访问请求的页面,因为页面的相关配置数据无效”,这导致web.config中出现一些问题。 我不认为IIS的版本是问题所在,因为从IIS 10移动到IIS 8

我使用visual studio 2015在asp.net core 1.0.1版中开发了一个web api,当我在开发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的两台PC之间也会出现相同的错误。 我已经回顾了几个相关的问题,例如,和其他与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>

发布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>

无论发布的是哪台计算机,此web.config文件都具有相同的内容


关于​​我的问题的解决方案可能是,我需要在任何版本的windows中安装web api,到目前为止,它只能在开发的pc上正常工作。

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

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

  • 验证应用程序池是否具有对日志目录和

  • 验证`stdoutLogEnabled=“true”

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

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

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

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

    是否在生产服务器上安装了.NET Core主机包,然后重新启动?此外,在web.config中设置
    stdoutLogEnabled=“true”
    可能有助于缩小问题范围。放弃它。继续之前,请在Visual Studio 2017中重做一个项目,因为您使用的是过时的工具。@ChrisPratt我从[重新启动]安装了.NET Core Windows Server宿主捆绑包,但仍然收到相同的错误500内部服务器错误任何建议?@aperioculus我还尝试设置
    stdoutLogEnabled=“true”
    在我的web.config中,但问题仍然存在。我给你一个投票权,只是为了找到托管捆绑包的下载链接。我找了又找,在下载页面的任何地方都找不到它。