Visual Studio使用Web Deploy发布.NET Web应用到指定服务器的IIS中

2023-12-13 23:49:04

前言

今天要讲的是在Window 2008 R2版本的服务器下如何配置Web Deploy,和Visual Studio使用Web Deploy发布.NET Web应用到指定服务器的IIS中。

因为历史原因项目只能使用这个版本的服务器,当然使用其他服务器版本配置流程也是一样的。

Web Deploy介绍

Web Deploy其实主要是为了解决Web应用程序和Web站点到IIS服务器的部署问题,管理员可以使用Web Deploy同步IIS服务器或迁移到较新版本的IIS。Web Deploy Tool还使管理员和委派用户能够使用IIS管理器将ASP.NET和PHP应用程序部署到IIS服务器。Web Deploy这一技术,完美的解决了那些年的手动部署问题。今天主要是要说说如何在windows服务器下配置Web Deploy,并使用Visual Studio远程发布项目。

服务器IIS Web Deploy配置

点击服务器管理>添加角色

安装Web服务器IIS

添加web服务器IIS的角色服务

选择添加角色服务:

托管Asp.Net web应用程序我们需要添加:

关于配置IIS Web Deploy至关重要的一个服务(管理服务)添加:

IIS7安装和配置Web部署

微软详细配置步骤:为 Web 服务器配置 Web 部署发布 (远程代理) | Microsoft Learn

首先下载安裝 Web Platform Installer(web平台安装程序),在安装平台中搜索Web Deploy添加安装:下载Web平台安装程序:https://www.microsoft.com/web/downloads/platform.aspx

然后打开IIs双击打开web平台安装程序,在搜索框中查找“Web Deploy”,然后按Enter。

添加用于托管服务器的Web部署工具:Web Deploy ?3.6,并点击安装,光添加是没有作用的哟!

在安装向导中,选择“完成”设置选项:

导出 Web Delpoy (xxx.PublishSettings)的配置文件

使用Visual Studio远程发布.NET Web项目

在VS中选择发布>新建发布>导入配置文件:

验证连接>保存配置>发布:

Visual Studio远程发布可能遇到的问题

无法完成远程代理 URL"https://192.xxx.xxx/MSDEPLOYAGENTSERVICE"发送请求。基础连接已经关闭:接收时发生错误

解决方式:

这很有可能就是没有和远程发布服务器握手成功,最大的可能就是与远程发布有关的端口没有开启(8172),所以我们需要到远程部署的服务中把(8172)端口配置到安全组中即可!

大家可以双击IIS中的管理服务就能看到远程发布的相关信息,如下图:

已使用Web部署代理服务连接到“132.22.xxx.xxx”,但未能授权

原因:出现这种情况的原因可能是你选择要为其授予发布权限的用户名或者是密码有误,填写正确的用户名和密码即可发布成功!

关于选择授予发布权限的用户有两种:

  • 第一种是IIS默认的用户名,密码是登录远程服务器的密码。
  • 第二种是所添加IIS管理器用户时所设置的用户名和密码。

无法完成远程代理 URL"https://192.xxx.xxx/MSDEPLOYAGENTSERVICE"发送请求。操作超时

解决方式:

其实我也不知道为会操作超时,在网上了许久也没有找到我想要的解决方案,不过后来我想了想Web Deploy远程部署会使用的到(80)端口,而后我发现我的服务器没有配置(80)端口的安全组,于是到远程部署的服务中把(80)端口配置到安全组中,最后解决了操作超时的问题!

DotNetGuide技术社区交流群

  • DotNetGuide技术社区是一个面向.NET开发者的开源技术社区,旨在为开发者们提供全面的C#/.NET/.NET Core相关学习资料、技术分享和咨询、项目推荐、招聘资讯和解决问题的平台。
  • 在这个社区中,开发者们可以分享自己的技术文章、项目经验、遇到的疑难技术问题以及解决方案,并且还有机会结识志同道合的开发者。
  • 我们致力于构建一个积极向上、和谐友善的.NET技术交流平台,为广大.NET开发者带来更多的价值和成长机会。

欢迎加入DotNetGuide技术社区微信交流群👪

文章来源:https://blog.csdn.net/qq_37237487/article/details/134983629
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。