从 ASP.Net 5“空”项目中删除 Kestrel
Posted
技术标签:
【中文标题】从 ASP.Net 5“空”项目中删除 Kestrel【英文标题】:Removing Kestrel from ASP.Net 5 'empty' project 【发布时间】:2015-12-15 10:19:33 【问题描述】:我在 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'”、“名称空间 'Microsoft 中不存在类型或名称空间名称 'DependencyInjection' .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"
行添加回 project.json
中的 commands
。
如果我不想使用 Kestrel,而只想使用 IIS / IIS Express,那么“Hello World”ASP.Net 5 项目中 project.json
文件的 dependencies
和 commands
部分应该是什么样子?
【问题讨论】:
我应该在此处发布这个问题还是在 aspnet/Hosting GitHub issues 上发布这个问题? 【参考方案1】:按照服务器文档中的建议,我想使用 IIS 而不是 Kestrel。
这个文档有点过时了。您必须使用 Kestrel 或其他支持 asp.net 的 http 侦听器 5. 有关更改为 IIS 托管模型here的更多信息@
简而言之:在 IIS 上启动通过 IISPlatformHandler 模块工作,该模块与 Kestrel 等 http 侦听器一起工作。
【讨论】:
以上是关于从 ASP.Net 5“空”项目中删除 Kestrel的主要内容,如果未能解决你的问题,请参考以下文章
为什么 Linux 上的 Asp.NET 5 需要 Kestrel ?
空 ASP.Net Core 项目中的 JavaScript Intellisense