MVC 6 - 在IIS上出现404错误

时间:2016-03-16 14:22:36

标签: visual-studio-2015 asp.net-core asp.net-core-mvc

这就是我得到的全部

  

状态代码:404;找不到

这是环境。

  • IIS 7.5
  • Windows 2008 R2
  • 安装了ASP.NET 5 RC和HttpPlatformHandler。

......以及我所做的一切。

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。

1 个答案:

答案 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