【发布时间】:2017-09-15 00:28:27
【问题描述】:
在生产服务器上,我尝试在 IIS 8.5 下运行 dotnet core api,但出现错误
具有物理根目录“D:\MyFolder\”的应用程序“MACHINE/WEBROOT/APPHOST/MySite” 无法使用命令行 '"" ' 启动进程,ErrorCode = '0x80070057 : 0.
我可以使用命令提示符在Kestrel 中运行我的 API,没有任何问题。
但是我无法通过 IIS 调用 API。我在事件查看器中遇到了上述错误。
注意:我还安装了IIS 8.5、.Net Core 1.0.1 和Windows Server Hosting 1.0.1 的开发服务器。但在开发环境中,我可以通过 IIS 访问 API。
但是在我安装了IIS 8.5、.Net Core 1.0.4 和Microsoft .Net Core 1.0.4 & 1.1.1 - Windows Server Hosting 的新生产服务器中发生了错误
由于在生产中,我可以使用.Net Core 1.0.4 在 Kestrel 中运行应用程序,我认为这不是 .net 核心版本的问题。
我猜它的发生是因为Microsoft .Net Core 1.0.4 & 1.1.1 - Windows Server Hosting。这个版本在开发和生产上是不同的。
问题
我该如何解决这个错误?
我在哪里可以找到旧版本的 Windows Server Hosting 安装文件。 (they are not here)
更新 1
下面是最终部署的 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=".\Api.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
</system.webServer>
</configuration>
我尝试将 processPath 更改为 C:\Program Files\dotnet.exe,但没有成功
更新 2
这里是project.json
【问题讨论】:
-
显示您的 web.config。它很可能坏了。
-
@Pawel 查看更新1
标签: iis asp.net-core asp.net-core-mvc coreclr kestrel-http-server