我有一个ASP.NET Core 1.1 Web应用程序,我已将其发布到远程服务器。
我已在these instructions之后在IIS中设置了网站。我知道绑定和防火墙等配置正确,因为在我安装.NET Core应用程序之前,我可以浏览绑定URL并查看IIS默认页面。
将.NET Core应用程序添加到网站目录后,浏览到同一URL只会返回 HTTP错误502.5 - 进程失败错误。但是,如果我在服务器上本地在命令提示符下运行应用程序(运行dotnet .\MyProject.dll
),它会报告应用程序启动正常。此时,我可以在http://localhost:5000本地浏览到该网站,它可以正常工作。
所以我认为这是我的IIS设置的问题。我可能错过了什么?我已经安装了ASP.NET Core 1.1.1 Hosting Package。应用程序池用户对我的应用程序目录具有修改权限,对C:\ program files \ dotnet具有读取权限。应用程序池配置为不包含托管代码。显然,运行时已正确安装,或者它无法在本地运行。不幸的是,服务器的事件查看器不是很有用,只是给了我:
应用程序' MACHINE / WEBROOT / APPHOST / MYPROJECT'与物理根 ' C:\网站\ MyProject的\'无法使用命令行&#dot; dotnet启动流程 。\ MyProject.dll',ErrorCode =' 0x80070002:0
非常感谢任何帮助。
更新1
当我找到this on SO时,我没有长时间发布这个帖子。一个未被接受的答案建议改变" dotnet"到" C:\ Program Files \ dotnet \ dotnet.exe"在web.config中最终得到:
<aspNetCore processPath="C:\Program Files\dotnet\dotnet.exe" arguments=".\Picsolve.Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
这解决了这个问题!谁能解释为什么这个ight了?我已经检查了我的系统环境变量,并且可以看到C:\ Program Files \ dotnet。