我在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
文件的commands
和project.json
部分应该是什么样子/ IIS Express?
答案 0 :(得分:0)
遵循服务器上的文档中的建议,我想使用IIS而不是Kestrel。
这个文档有点过时了。您必须使用Kestrel或支持asp.net 5的其他http侦听器。有关更改到IIS托管模型的更大信息here
简而言之:IIS上的启动是通过IISPlatformHandler模块运行的,它与http听众如Kestrel一起工作。