将 ASP.NET 5 远程发布到 IIS

Posted

技术标签:

【中文标题】将 ASP.NET 5 远程发布到 IIS【英文标题】:Remotely publish ASP.NET 5 to IIS 【发布时间】:2015-07-22 18:25:33 【问题描述】:

我有一个想要部署到远程服务器的 ASP.NET 5 项目。我没有远程桌面访问这台机器,否则我可以按照大多数人在部署到 IIS 时使用的相同方法。

我能够在与我的开发相同的机器上部署到我的 IIS 8.5。首先,我打包我的项目以获取 approot 和 wwwroot 目录。然后,我将 IIS 指向我的 wwwroot,一切正常。

问题是尝试远程部署。通常我会压缩我的 MVC 5 项目并使用 IIS gui 来“导入”一个应用程序。

这不适用于我的 MVC 6 项目。要么我的压缩不正确,要么不能以这种方式部署 MVC 6 项目。

如何将 vNext 应用程序发布到远程 IIS 服务器?

编辑:

仅供参考,我正在使用 Microsoft 的 Web Deploy Remote Agent 将其部署到服务器。 http://www.asp.net/web-forms/overview/deployment/configuring-server-environments-for-web-deployment/configuring-a-web-server-for-web-deploy-publishing-(remote-agent)

它非常适合 MVC 5 应用程序,因为开发人员可以轻松部署 Web 应用程序并且 IT 可以限制对机器的访问,但问题是尝试使用此代理部署 MVC 6 应用程序。

我不是在质疑如何将 MVC 6 项目部署到 IIS,因为已经回答了 Here,这是关于如何远程部署到 IIS。

【问题讨论】:

为什么不起作用?你有错误吗? 当我尝试访问我的网站时收到 403.14。 “403.14 - 目录列表被拒绝。”它试图只是浏览我的目录而不是执行我的网站。我确定这是因为我的网站指向同时包含 wwwroot 和 approot 的文件夹,而它应该直接指向 wwwroot。 ASP.NET 5 project hosting on IIS的可能重复 该链接假定您可以将解压缩的文件放在托管服务器的文件系统上。就我而言,我无权访问远程服务器的文件系统。 您不一定需要访问文件系统,只要您以某种方式将文件夹放在那里,听起来就像您所做的那样。而是将 IIS 配置为指向 wwwroot 目录,并确保按照我提供的链接中的说明配置 web.config 文件。如果您无权修改 IIS 设置,请请求访问权限或让有权访问的人为您执行此操作。 【参考方案1】:

我通过更新到 Web Deploy 3.6 解决了这个问题。最新版本包括一个专门用于部署 ASP.NET 5 应用程序的提供程序。

有关如何使用它的详细信息,请参阅此博客文章: http://azure.microsoft.com/blog/2014/08/11/web-deploy-3-6-beta-released/

下载链接如下: http://www.microsoft.com/en-us/download/details.aspx?id=43717

使用 contentPathLib 提供程序或启用 contentlibextension

示例用法:

C:\Program Files (x86)\IIS\Microsoft Web Deploy V3> msdeploy -verb:sync -source:iisapp=C:\release\Publish\wwwroot -dest:iisapp="默认网站/ExampleApp",computerName=机器名 -enablelink:contentlibextension

据我所知,目前还没有支持这些部署方法的 GUI。我认为这是因为 vNext 处于测试阶段,预计会有重大变化。

【讨论】:

以上是关于将 ASP.NET 5 远程发布到 IIS的主要内容,如果未能解决你的问题,请参考以下文章

IIS上asp.net网站启动不了,错误如下图:

asp.net,本地发布,IIS报错,HTTP 错误 500.19 - Internal Server Error

asp.net,密码5次错误就15分钟内禁止登录

IIS ASP.NET 何时使用集成模式或经典模式?

IIS ASP.net 目录权限 [重复]

asp.net程序错误 Server Error in '/' Application