0

我在 Visual Studio 2015 中创建了一个“空”ASP.Net 5 项目。该project.json文件包含这些行

"dependencies": {
  "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
  "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final"
},

"commands": {
  "web": "Microsoft.AspNet.Server.Kestrel"
},

我正在 Windows 10 开发 PC 上进行测试并计划部署到 Azure,因此,按照Servers 文档中的建议,我想使用 IIS 而不是 Kestrel。

然而,将 Kestrel 淘汰并非易事。首先,我从文件中删除与 Kestrel 相关的行project.json

"dependencies": {
  "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
},

"commands": {
},

这无法构建并出现多个错误(“命名空间‘Microsoft.AspNet’中不存在类型或命名空间名称‘Hosting’”、“命名空间‘Microsoft.Extensions’中不存在类型或命名空间名称‘DependencyInjection’ ”、“找不到类型或命名空间名称‘IServiceCollection’”和“当前上下文中不存在名称‘WebApplication’”)所以我添加dependencies以修复错误,给出以下内容(成功构建)

"dependencies": {
  "EntityFramework.Core": "7.0.0-rc1-final",
  "Microsoft.AspNet.Hosting": "1.0.0-rc1-final",
  "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
  "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final"
},

"commands": {
},

但是它不会运行 - 只是无限期挂起,但它还会将该行添加"web": "Microsoft.AspNet.Server.Kestrel"commandsin project.json

如果我不想使用 Kestrel,而只想使用 IIS / IIS Express,那么“Hello World”ASP.Net 5 项目中文件的dependenciesandcommands部分应该是什么样子?project.json

4

1 回答 1

0

按照服务器文档中的建议,我想使用 IIS 而不是 Kestrel。

这个文档有点过时了。您必须使用 Kestrel 或其他支持 asp.net 5 的 http 侦听器。有关更改为 IIS 托管模型的更多信息在这里

简而言之:在 IIS 上启动通过 IISPlatformHandler 模块工作,该模块与 Kestrel 等 http 侦听器一起工作。

于 2015-12-15T11:37:29.680 回答