我有一个ASP.NET 5应用程序,发布在 dnx-clr-win-x64.1.0.0-rc1-update1 下。
我按照this article将其部署到IIS 8.5。
当我手动使用web.cmd运行它时,它可以工作。
但是当我在IIS下运行它时,它会发出 HTTP 404(未找到)。
原因可能是什么?
This is the IIS setup我正在使用。
这是web.config:
<configuration>
<system.webServer>
<handlers>
<add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
</handlers>
<httpPlatform processPath="..\approot\web.cmd" arguments="" stdoutLogEnabled="false" stdoutLogFile="..\logs\stdout.log" startupTimeLimit="3600"></httpPlatform>
</system.webServer>
</configuration>
而project.json:
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
"Nummularii.Common.dll": "1.0.0"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"frameworks": {
"dnx451": {
"dependencies": {
"Admin.Common": "1.0.0-*"
},
"frameworkAssemblies": {
"System.ServiceModel": "4.0.0.0"
}
}
},
"exclude": [
"wwwroot",
"node_modules",
"bower_components"
],
"scripts": {
"prepublish": [ "npm install", "bower install" ],
"prepare": "gulp"
},
"publishExclude": [
"**.user",
"**.vspscc"
]
}
答案 0 :(得分:0)
这是一个很长的镜头,但我想知道你在项目路径的任何目录名称中是否有空格?在RC1中,这可以防止IIS Express运行Web应用程序。可能还有IIS。在错误报告链的某些级别,这看起来像找不到文件错误。但是在其他级别,它显示为&#34;尝试确定托管应用程序的DNX进程的进程ID时出错。&#34;
正如我所说,这有点长,因为它可能不是你的问题,但我认为值得一提,因为它可能是。
有关详细信息,请参阅此github问题:https://github.com/aspnet/Home/issues/1194
答案 1 :(得分:0)
事实证明,当Web应用程序位于虚拟目录(在我的情况下为“admin”)时,RC1中存在一个错误。
有关解决方法
的信息,请参阅以下链接