asp.net核心web API在移动到不同的IIS服务器pc后发布,出现错误500.19(0x8007000d)

wqnecbli  于 2023-10-19  发布在  .NET
关注(0)|答案(1)|浏览(115)

我使用Visual Studio 2015在www.example.com核心版本1.0.1中开发了一个Web APIasp.net,当我在开发它的同一台PC的IIS 10中发布Web API时,一切正常。当我将Web API的发布文件夹复制并粘贴到不同的PC时,出现了问题,浏览器显示错误500.19内部服务器错误,错误代码0x8007000 d,“无法访问所请求的页面,因为该页面的相关配置数据无效“,这导致了web.exe中的一些问题。我不认为IIS的版本是问题所在,因为从IIS 10移动到IIS 8或从IIS 8移动到IIS 10会产生相同的错误,并且在两台IIS 10的PC之间也会发生相同的错误。我已经审查了几个相关的问题,如,The element 'system.webServer' has invalid child element 'aspNetCore',和其他相关的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文件有相同的内容,无论什么计算机发布。
一些想法是什么解决我的问题可能是,我需要挂载web API在任何版本的windows和到现在为止,它只正确地工作在pc上的开发。

e7arh2l6

e7arh2l61#

获取更详细的错误信息:

1.验证Web配置引用的路径中是否存在日志目录。如果没有,就创造它。配置中显示的路径将把“logs”目录放在已部署站点的根文件夹中。
1.验证应用程序池是否具有对日志目录的写访问权限,
1.验证`stdoutLogEnabled=“true”。
如果您已经验证了所有这3个项目,那么您应该得到日志条目,其中将包含错误的更详细的描述

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

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

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

相关问题