这就是我得到的全部
状态代码:404;找不到
这是环境。
......以及我所做的一切。
1)检查web.config中stdoutLogFile指向的日志目录。看不到任何错误。其中很多都是:
info: Microsoft.AspNet.Hosting.Internal.HostingEngine[1]
Request starting HTTP/1.1 GET <websiteName>
2)RDP in并且可以在approot目录中运行web.cmd后浏览到该站点。网站以这种方式运行良好。无法使用IIS访问它。
3)Startup.cs / configure包含
app.UseStatusCodePages();
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
4)本地发布。复制到服务器。网站指向wwwroot目录。 Approot坐在旁边。
5)processPath指向“.. \ approot \ web.cmd”。
6)使用DNX版本dnx-clr-win-x86.1.0.0-rc1-update1发布。也尝试了相同的64位版本。
7)安装了HttpPlatformHandler。
8)检查了IIS错误日志,但没有看到任何有趣的内容。
我接下来应该尝试什么?
更新
我已映射这些环境变量。
DNX_HOME - C:\Users\<user>\.dnx
DNX_PACKAGES - C:\Users\<user>\.dnx\packages
DNX_PATH - C:\Users\<user>\.dnx\bin\dnvm.cmd
安装Visual Studio 2012 Update 4的Visual C ++ Redistributable。
答案 0 :(得分:0)
1)每次执行故障排除步骤时,都要回收应用程序池。
2)尝试大大简化的应用程序。如果您仍然收到404,那么我们知道主机不在于应用程序。
以下超级简单的应用程序在IIS中为我们工作。
<强> C:/App00/Startup.cs 强>
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
namespace App00
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.Run(async context =>
{
await context.Response.WriteAsync("Hello from RC1!");
});
}
}
}
<强> C:/App00/project.json 强>
{
"dependencies": {
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-*"
},
"frameworks": {
"dnx451": {}
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
}
}
<强> C:/App00/wwwroot/web.config 强>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*"
modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%"
stdoutLogEnabled="false" startupTimeLimit="3600"/>
</system.webServer>
</configuration>
恢复和发布
dnvm use 1.0.0-rc1-update1 -runtime clr
dnu restore
dnu publish --runtime active
IIS配置
Physical Path C:\App00\bin\output\wwwroot