我试图通过IIS运行默认的ASP.NET核心Web应用程序(VS 2015中的Web应用程序模板)。
我已按照文档here中的说明进行操作,例如设置“无管理代码”应用程序池并将物理路径指向web.config
文件的位置。
当我尝试浏览网站root时,http://localhost
我收到此错误:
HTTP错误502.3 - 错误的网关尝试路由请求时出现连接错误。
最有可能的原因:CGI应用程序没有返回有效的一组 HTTP错误。充当代理或网关的服务器无法执行此操作 由于父网关中的错误而处理请求。
事件查看器声明:
无法使用命令行'dotnet ./bin/Debug/netcoreapp1.0/WebApplication2.dll'启动进程,错误代码='0x80004005'。
此错误显示我已替换占位符
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%"
web.config
中的,其中包含所需的值
<aspNetCore processPath="dotnet" arguments="./bin/Debug/netcoreapp1.0/WebApplication2.dll"
(更新:发布时会替换这些占位符)
根据我已安装.NET Core Windows Server Hosting Bundle
的故障排除说明并重新启动服务器。
通过dotnet
从命令行运行
想知道现在要尝试什么。
答案 0 :(得分:4)
好的,我想出了我的问题。我将IIS中的物理路径指向未发布的 Visual Studio项目根目录。这适用于以前版本的.net(即非dotnet核心aspnet项目),但现在还没有。
如果您确实希望这样做,那么您必须将应用程序发布到临时文件夹,然后将Microsoft.AspNetCore.*
二进制文件与bin\Debug\
和{{refs
文件夹一起复制回runtimes
文件夹1}}文件夹
答案 1 :(得分:0)
这是IIS无法找到指定的.NET Core组件且不知道转发请求的位置时的一般错误。除了the official IIS publishing guide之后,请确保您拥有:
project.json
web.config
文件(最好使用publish-iis
工具),并且<aspNetCore>
键值已替换为本地值(source, with examples)我在新的Windows 2008 Server上设置Core 1.0.0(最终)网站时遇到了这个问题。结果我把我的开发机器中的一些安装程序与更新的版本混淆了,并且库版本不匹配(RC2 vs final)。重新安装Server Hosting包修复了问题。
故障排除的关键是进入控制台并使用dotnet
命令(以及产生的错误消息)进行迭代,直到我从控制台运行我的站点,因为浏览器中的IIS错误页面无用。我还发现系统错误日志中的一些条目有一些好处,但不多。