从ASP.Net 5'空'项目

时间:2015-12-15 10:19:33

标签: asp.net-core kestrel-http-server

我在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,因此,按照the docs on Servers中的建议,我想使用IIS而不是Kestrel。

然而,将Kestrel扯出并不简单。首先,我从project.json文件中删除了与Kestrel相关的行:

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

"commands": {
},

无法构建多个错误(“命名空间'Microsoft.AspNet'中不存在类型或命名空间名称'Hosting'”,“名称空间中的类型或命名空间名称'DependencyInjection'不存在'Microsoft .Extensions'“,”无法找到类型或命名空间名称'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"添加回commands中的project.json

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

1 个答案:

答案 0 :(得分:0)

  

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

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

简而言之:IIS上的启动是通过IISPlatformHandler模​​块运行的,它与http听众如Kestrel一起工作。