ASP.NET 5 Web应用程序适用于web.cmd,但不适用于IIS应用程序

时间:2016-01-04 14:37:57

标签: c# iis asp.net-core

我有一个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"
  ]
}

2 个答案:

答案 0 :(得分:0)

这是一个很长的镜头,但我想知道你在项目路径的任何目录名称中是否有空格?在RC1中,这可以防止IIS Express运行Web应用程序。可能还有IIS。在错误报告链的某些级别,这看起来像找不到文件错误。但是在其他级别,它显示为&#34;尝试确定托管应用程序的DNX进程的进程ID时出错。&#34;

正如我所说,这有点长,因为它可能不是你的问题,但我认为值得一提,因为它可能是。

有关详细信息,请参阅此github问题:https://github.com/aspnet/Home/issues/1194

答案 1 :(得分:0)

事实证明,当Web应用程序位于虚拟目录(在我的情况下为“admin”)时,RC1中存在一个错误。

有关解决方法

的信息,请参阅以下链接

beta8 published app doesn't run on IIS 7.5