我使用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上的开发。
1条答案
按热度按时间e7arh2l61#
获取更详细的错误信息:
1.验证Web配置引用的路径中是否存在日志目录。如果没有,就创造它。配置中显示的路径将把“logs”目录放在已部署站点的根文件夹中。
1.验证应用程序池是否具有对日志目录的写访问权限,
1.验证`stdoutLogEnabled=“true”。
如果您已经验证了所有这3个项目,那么您应该得到日志条目,其中将包含错误的更详细的描述
什么可能导致“500.19内部服务器错误,错误代码0x8007000d”错误?
C:\Program Files\dotnet
或C:\Program Files (x86)\dotnet
中。知道路径后,请确保路径存在于环境变量中。控制面板>系统>高级系统设置>环境变量。突出显示“路径”,单击“编辑”并验证dotnet文件夹的路径是否存在。如果不是,就加进去。对User变量和System变量执行相同的操作。重新启动计算机,然后重试。