ASP.NET Web 应用程序远程部署到IIS

服务器环境

  • Windows Server 2012 R2
  • IIS 8

本地环境

  • Visual Studio 2017

准备

参考

步骤

VS给我们提供了四种部署方式,这里要介绍的是FTP和Web 部署方式。

安装IIS

FTP和Web Deploy都需要安装IIS。

  1. 打开服务器管理器,点击【添加角色和功能】
  2. 在【服务器角色】选项勾选以下项:其中有些项可以不安装,但不确保接下来是否可以顺利配置。
  3. 点击下一步,在【功能】里选中.NET Framework:
  4. 点击安装,等待其安装完毕。

FTP发布

FTP发布相对简单,但是它无法以不同端口上传不同网站(一种替代方案:在同一网站下添加多个应用程序,上传时以不同路径区分每个网站,但这种方式还是使用同一端口)。

添加FTP发布

  1. 打开IIS,可以看到生成的默认站点Default Web Site,我们就发布到默认站点
  2. 右键Default Web Site,点击【添加FTP发布】
  3. 修改SSL设定,选中【无SSL】,下一步(这里如果修改端口,VS也无法发布到对应端口,因为VS发布时无法指定FTP端口)
  4. 选中身份验证中的【基本】,授权种选择【所有用户】,权限全部勾选
  5. 配置完毕后,在默认站点主页可以看到多出的一行FTP设置选项

VS发布

  1. 打开欲发布的项目,右键点击发布。(这里如果报错,建议使用VS Installer修复一下VS,有时VS更新或者系统优化会导致组件损坏)
  2. 新建配置文件,发布方法选择FTP
  3. 服务器填写服务器IP;站点路径如果有则填写,没有则不填写(如替代方案,多个应用程序配置了多个目录,就需要填写站点路径);填写用户名和密码;目标URL可选。
  4. 验证连接,成功后就可以发布了。

Web Deploy发布

Web Deploy需要先在服务器端安装Web Deploy。

这里我在参考MSDN的时候还安装了Web Platform Installer(WPI),不确定对Web部署有没有影响,大概率没影响。但是如果要安装WPI,请一定先安装WPI,再安装Web Deploy,不然在VS部署时会报错system.webServer/management/delegation的错。

安装Web Deploy(3.6)

双击下载的安装包安装,这里还有一个坑,要选择自定义安装并勾选所有组件,选择完整安装不会安装中间的【IIS部署处理程序】。

打开【控制面板-管理工具-服务】,确认Web Management Service存在并且开启。

在IIS右键站点,出现【部署】代表安装成功。

配置Web Deploy

  1. 在IIS双击本机地址,进入主页
  2. 在页面下方的管理中找到【管理服务】,双击打开
  3. 在标识凭据内选择【Windows凭据或IIS管理器凭据】,再勾选【启用远程连接】
  4. 在右侧点击【应用】,再点击【启动】

打开Windows防火墙,允许【8172】端口入站(我这里启用后系统自动添加了【Web管理服务】的入站规则,允许8172端口入站)。

VS Web部署

  1. 打开Web项目,右键发布
  2. 新建配置文件,选择Web 部署
  3. 服务器填写服务器IP,站点名称填写IIS的站点名称,用户名密码填写Windows账户(也可以在IIS新建用户,但需要修改对应网站目录的权限),验证连接,成功即可发布(这里如果报错,先检查Web Deploy是否正确安装,本地VS错误的可能性小。如果想查看更具体的信息,可以先保存配置,然后回到VS发布页面,点击【预览…】,然后点击【开始预览】,在这里会显示更具体完整的错误信息)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据