在 IIS 上使用 .NET Core 运行 ASP.NET 5 (MVC 6)
Posted
技术标签:
【中文标题】在 IIS 上使用 .NET Core 运行 ASP.NET 5 (MVC 6)【英文标题】:Run ASP.NET 5 (MVC 6) using .NET Core on IIS 【发布时间】:2015-04-30 16:32:01 【问题描述】:我刚刚在 Visual Studio.NET 2015 RC 上创建了一个快速的 ASP.NET 5 MVC 6 应用程序,并希望它在我的 Windows 7 上的 IIS Web 服务器上运行。
通常,当我在 IIS 上创建网站时,我需要选择一个应用程序池,无论是 v2.0 还是 v4.0 集成。
现在,由于 .NET Core 的所有库都作为 nuget 包提供,我如何在 IIS 上运行它?我选择哪个应用程序池?这是如何工作的?
【问题讨论】:
我还没有尝试过这种部署方案,但我想 IIS 7(Windows 7 附带)不会支持这个。您过去必须重新打包 vnext 应用程序才能让它们在 IIS 中运行,因为没有 IIS 版本支持它们开箱即用。 IIS 8 现在可能会这样做,但实际上可能需要更新到 Windows 10 才能实际使用默认部署。见:github.com/aspnet/Home/wiki/… 我到处寻找,但找不到答案,我什至不确定 Windows 10。假设我希望应用程序在 IIS 上托管的 www.mywebsite.com 上运行,将如何我去解决这个问题? 我认为您正在寻找Project "Helios"。这就是我对这门学科知识的局限。 :) 【参考方案1】:更新
正如@wickdninja 所说,以下内容已过时。使用his updated solution instead:https://docs.microsoft.com/en-us/aspnet/core/publishing/iis 要让应用程序在 IIS 上运行:
在 v4.0 应用程序池下创建网站。
使用dnu publish
捆绑/发布应用程序。这将创建一个包含应用程序、运行时和所有依赖项的自包含包。更改运行时名称以匹配您选择的运行时。
dnu publish --runtime dnx-coreclr-win-x86.1.0.0-beta5-11625
如果您不希望应用程序每次启动时都从源代码编译,您甚至可以传递 --no-source
。
将捆绑包(来自bin\output
)复制到网站根目录下。
运行
可能出错的地方:
-
IIS 位数(32/64 位)必须与 coreclr 的位数匹配。
如果不将捆绑的网站复制到网站根目录下,请确保运行 IIS 的帐户确实可以访问运行时文件夹。
【讨论】:
最后一个可能出错的事情是使用其他包在 beta 阶段不喜欢的运行时。在撰写本文时,coreclr 在 nuget 上是 beta4,在 myget.org 预发行版上是 beta5。如果你的包来自 nuget,像 Microsoft.AspNet.Mvc 这样的包在 beta4 上,根据我的经验,它不会在 beta5 coreclr 上运行,因为正在进行很多重大更改。 谢谢你,我终于让它工作了。我只需要在 .NET Core x64 架构而不是 x86 下发布网站,它就可以工作了。 Here 应用程序池建议使用“无托管代码”。 嗨,我怎样才能得到运行时列表?我不知道我应该使用哪个运行时 这个答案已经过时了。有关更新信息,请参阅下面的文档链接【参考方案2】:这个问题已经过时了,微软已经为这个场景发布了相当详尽的文档。你可以在这里找到它:https://docs.microsoft.com/en-us/aspnet/core/publishing/iis
【讨论】:
如果你对这篇文章进行总结,它可能对你有相当多的意义。指向关于 SO 的文档通常是不受欢迎的 @paqogomez 感谢您的建议。我同意,我可以通过总结文档获得更多积分,但是由于新的docs.microsoft.com/en-us/aspnet/core/publishing/iis 是一个生成的文档,任何人都可以通过页面上的"edit" 按钮对其做出贡献,我想我将提供的任何摘要都只是很快就过时了。在文档方面,我宁愿给人们准确的信息,也不愿贪图积分。 :) 好吧,这没有抓住重点。在 SO 上,我们永远无法确定链接是否会过时,并且我们不确定信息是否是最新的。因此,我们总结而不是链接,并尽最大努力跟上我们的帖子并保持信息更新。祝你好运以上是关于在 IIS 上使用 .NET Core 运行 ASP.NET 5 (MVC 6)的主要内容,如果未能解决你的问题,请参考以下文章
调试在 IIS 中运行的 ASP.NET Core 应用程序
在 IIS 7.5 上运行 ASP.NET Core 时,日志在哪里?
关于 IIS 上运行 ASP.NET Core 站点的“HTTP 错误 500.19”错误