asp.net - 我应该使用 Windows 管理服务还是远程代理服务来发布到远程服务器?

标签 asp.net iis deployment msdeploy

我有一个远程 Web 服务器,我拥有完全管理员访问权限,我想部署一个网站。

当我使用 Visual Studio 的发布工具时,除了其他看起来不太方便的东西(FTP 等)时,我可以选择使用 Windows 管理服务或远程代理服务。所有的文档都是这样说的:

To publish remotely through Remote Agent Service, use http://RemoteComputerName. This option is typically used to deploy a Web application inside a network (in an intranet scenario). You must have appropriate permissions to perform the deployment on the destination server.

To publish to a hosting site using Windows Management Service, use the value that is specified by the hosting provider. You can typically use just a server name (HostedRemoteServer) or a complete URL that includes a server name, a port number, and the Web Deploy handler name (https://HostedRemoteServer:8172/MsDeploy.axd). The hosting provider can tell you the name of the server and the port number, if applicable.



不过,这还不足以让我做出决定。是的,我不是通过网络发布,但我确实可以完全访问我要部署到的机器。同时,MsDeploy 是 Scott Hanselman 描述的一个大花哨的东西 in his talk并且我一直确信这是一种很棒的部署方式。

那我应该怎么做?是否有任何模糊的安全考虑或任何事情?

最佳答案

我建议走管理服务路线。除了 msdeploy 功能之外,管理服务功能还使您能够从您的计算机远程管理 IIS 7/7.5。通过一个控制台中的所有 IIS 服务器,您可以轻松地在一台机器上导出应用程序并将其导入到另一台机器上。

从安全供应角度和配置角度来看,这似乎是最复杂的 msdeploy 实现。 IIS 管理器允许您轻松配置端点的详细信息(SSL 证书、端口等)。嗯.. 在 Windows 2008 和 R2 上的 IIS 7/7.5 上确实如此,但在 Windows Vista 或 7 上则不然。出于某种奇怪的原因,非服务器 SKU 上的 Web 管理设置没有 UI。

代理基本上是一个自包含的 Web 服务器,没有任何用户级权限功能。这就是为什么它要求进行远程部署的人在目标机器上具有管理员权限。感觉就像一个更简单的裸机实现。由于您已经让 IIS 为 HTTP/HTTPS 提供服务,并且由于 IIS 的 HTTP 实现具有内核级优化,因此通过代理路由并没有真正获得任何好处。

如果您想从 Windows Vista/7 远程管理 Windows 2008 或 R2,请在您的工作站上安装它:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=32c54c37-7530-4fc0-bd20-177a3e5330b7 ......这对我来说是锦上添花。

关于asp.net - 我应该使用 Windows 管理服务还是远程代理服务来发布到远程服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4262700/

相关文章:

php - IIS7/PHP/Laravel 上的 PUT 和 DELETE

django - 基于 Dokku 的安装中我的静态文件在哪里?

ruby-on-rails - 将静态 Assets 部署到 Amazon S3

asp.net - JSON:序列化从 IEnumerable 派生的类型

javascript - 有没有办法使用 JS 和 ASP

iis - IIS 会回收asp.net core 进程吗?

ssl - 使用 TLS 1.2 的自签名证书

deployment - 跳过使用 npm 提供程序的部署,因为不允许部署此分支

asp.net - 如何在 VB.NET 中对数组进行 JSON 编码?

c# - 在每个 View 中包含用户模型