在 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 10 上的 ASP.NET Core 404 错误

关于 IIS 上运行 ASP.NET Core 站点的“HTTP 错误 500.19”错误

IIS 上的 Asp.net Core 2 发布项目只返回一个空白页?

部署在 IIS 上的 ASP.NET Core 对长时间运行的请求返回 502 错误