IIS Express 中的 appDomainCreationException 使用 ASP.NET 5 beta7

appDomainCreationException in IIS Express using ASP.NET 5 beta7

将我的应用程序更新到 beta7 后,我无法使用浏览器中的视图或在调试器中 运行 从 IIS Express 中 运行 它,它在浏览器中显示此异常但没有' 使用调试器中断我的代码中的任何异常:

[异常:应用程序意外失败。状态代码“-2147024894”。] System.Web.HttpRuntime.HostingInit(HostingEnvironmentFlags hostingFlags, PolicyLevel policyLevel, Exception appDomainCreationException) +361

[HttpException (0x80004005): Unexpected application failure. Status code '-2147024894'.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +579
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +120
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +712

我能够从命令行使用 dnx web 运行 它,没有任何错误。 我尝试了一个使用 vs 模板的新网络应用程序,那个 运行 在 IIS Express 中很好,所以它一定是关于我的应用程序的特定内容,但我不知道是什么,因为它不会因我的任何错误而中断在调试器中 运行ning 时的代码。

任何人都知道是什么导致了这个问题,或者检查我的应用程序或配置可以解决什么问题?

请注意,dnvm 列表将我的默认 运行 时间显示为 beta7 coreclr x64,这也是我在网络应用程序属性和 global.json 中设置的特定 运行 时间

经过多次调试,我发现问题是因为它并没有真正使用 beta7 启动应用程序,它实际上使用的是 beta6 运行时,即使项目、我的配置文件和 global.json 都已配置使用 beta7.

这样做的原因是因为我的 wwwroot 文件夹中有一个 Web.config 文件,其中包含以下 appSettings:

<appSettings>
    <add key="bootstrapper-version" value="1.0.0-beta6" />
    <add key="dnx-version" value="1.0.0-beta6" />
    <add key="dnx-clr" value="coreclr" />
  </appSettings>

将这些更新到 beta7 后,它现在可以在 IIS 中正常工作了。

它从命令行运行的原因是因为 web.config 仅供 IIS 使用

我遇到了同样的问题。我使用 dot net 版本管理器安装了一个新的运行时环境: dnvm install latest -r coreclr -arch x64 安装并使用了 1.0.0-beta7 coreclr x64

然后在我的解决方案中global.json我将sdk设置为beta7版本

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-beta7"
  }
}

我得到了 [Exception: Unexpected application failure. Status code '-2147024894'.]

您的回答为我指明了正确的方向。好像IIS不匹配.. 所以我去了我的 project.json 并将 AspNet.Server 的依赖项设置为正确的版本 1.0.0-beta7

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta7"
  },

  "commands": {
    "web": "Microsoft.AspNet.Hosting --config hosting.ini"
  },

  "frameworks": {
    "dnxcore50": { }
  },

  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ],
  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ]
}

然后应用程序在 iis express 下正常运行。

请注意,在 VS2015 ASP.NET 5 个项目中,IIS Express 配置位于 <path_to_solution>\.vs\config\applicationhost.config,但由于它是自动生成的文件夹,因此无需在此处修改任何内容。

此外,我不确定为什么您在 wwwroot 文件夹下有一个配置文件,但它似乎不是托管配置文件的安全位置,因为如果我没记错的话,它是网络服务器公开的静态文件夹.