图片 73

Deploy方式发布,图文详解远程部署ASP

如何设置非管理员用    
户配置特定的IIS站点

话外篇:

在学习和工作的过程中,发现很多同事、朋友,在做.NET
Web应用发布的时候,依然在走 生成-复制到服务器
这样的方式,稍微高级一点的,就是先发布到本地,再上传到服务器

一、           添加IIS管理服务

     
 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署。因此今天专门研究了一下具体的过程,下面和大家分享一下。本人新手,还望大虾勿喷,有什么问题,还望高手指点。

这种方式不仅效率低下,而且不易进行版本控制,程序稍微复杂一些,加上团队协作,发布就会出现各种不可预料的版本问题。

 图片 1

一、本文实验环境:

正好这两天在玩Azure和Windows Server
2016,详见《【初码干货】【Azure系列】1、再次感受Azure,体验Windows
Server
2016并部署BlogEngine.NET》,而我在实际使用过程中,也遇到过不少关于Web
Deploy的坑,所以在这里,将WebDeploy的完整配置和使用方法重新梳理一遍

二、           启动管理服务

      Windows Server 2012 R2

特别值得注意的是,虽然以Windows Server 2016作为演示,但和在Windows
Server 2012 R2里面的步骤是完全一致!

 图片 2

      SQL Server 2012 Express

下面是完整的步骤

 图片 3

     Visual Studio 2013

1、在IIS里面点击获取新的Web平台组件

勾选启用远程连接后。点右边的应用

     项目为:ASP.NET MVC
5.0,使用的是LocalDB数据库

图片 4

三、           设置站点权限

二、使用Web
Deploy远程部署的条件

 

 图片 5

      Web
Deploy可以用于本地和远程部署Web项目,使用Web
Deploy部署时有如下要求:

2、下载Web平台组件并安装

图片 6

       1.需要安装Web
Deploy ,下面地址:http://www.iis.net/downloads/microsoft/web-deploy

图片 7

 

 

 

添加一个windows标准用户

        2.安装Web Deploy之后,还需要启用IIS
的——管理服务,打开Windows
Server的服务器管理器,点击添加角色和功能:

3、在其中搜索Web
Deploy,找到3.5版本,并安装

四、           标准用户访问

        图片 8       

图片 9

 图片 10

    之后点击下一步: 

图片 11

 图片 12

       图片 13

图片 14

输入服务器名称和站点名称

       图片 15

图片 16

 图片 17

       图片 18

 

 图片 19

      在这里需要勾选“管理服务”,这一步非常重要。

4、继续搜索Web Deploy
3.6版本,并安装

 

      图片 20

图片 21

      之后下一步,等待完成配置即可。完成之后再服务列表中会多出Web
Management Service服务,并确保该服务启动。

图片 22

      图片 23

图片 24

    注意,如果该服务没有启动,或者没有启用“管理服务”功能,则在使用Web
Deploy部署项目时会遇到如下错误:“未能连接到远程计算机,请确保在远程计算机上安装了
Web Deploy 并启动了所需的进程(“Web Management Service”)”:

图片 25

      图片 26

安装好之后,重新进入IIS,发现新增了一些功能

     
3.配置好管理服务之后,接下来需要进入IIS中通过管理服务来进行相应的设置:

图片 27

      在我们启用管理服务后,进入IIS,会多出管理服务选项:

 

      图片 28

class=”underline”>5、进入计算机管理,修改两个用户(WDeployAdmin和WDeployConfigWriter)的密码属性,包括设置永不过期以及设置一个固定密码

     
双击管理服务,对IIS进行配置,这里我保持了默认的设置,您可以根据自己的情况进行设置:

图片 29

     图片 30

图片 31

     4.配置远部署Web项目的账户

图片 32

   
基于安全考虑,我们最好提供单独的账户来部署Web项目,同时对于IIS中站点,可以指定哪些用户才具有部署应用程序到此站点的权限。

图片 33

    首先点击”IIS 管理器用户”:

图片 34

    图片 35

图片 36

    然后点击”添加用户”:

图片 37

    图片 38

 

     然后配置账户名和密码:

6、回到IIS中,对Web
Deploy的管理服务委派中的部分提供程序的用户进行重新配置(使用刚才设置的密码)

   图片 39

图片 40

   配置完成之后,接下来需要设置站点的用户权限。

图片 41

 
5.配置站点用户权限

图片 42

  首先点击您程序将要发布到的站点,例如本文为Default Web
Site.之后在管理选项中点击”IIS 管理器权限”:

图片 43

  图片 44

图片 45

  之后点击“允许用户”:

这里只列举一个 backupSettings的配置,其他的3个大家依葫芦画瓢就可以了

 图片 46

7、添加一个IIS管理用户

 将之前我们添加的iepi用户添加到选择的站点权限中:

图片 47

 图片 48

图片 49

最后点击确定,配置结束。

图片 50

 三、使用Visual Studio
2013远程部署项目

 

在发布项目之前,我们需要对将要发布的站点(例如这里的
Default Web Site)根目录进行一些权限配置。也就是”Local Service
“账户需要有修改站点目录的权限。这里我们的“Default Web
Site”的目录对于着:

7、配置防火墙

C:inetpubwwwroot,因此我们右键wwwroot文件件,选择属性——安全——编辑,添加Local
Service账户,并勾选”修改“权限“

我们可以看到,WebDeploy服务的默认服务端口是8172

图片 51

图片 52

 

因此要在入口规则中添加一个8172端口的入站规则

如果没有进行以上的权限配置则会在发布的时候提示无法在站点的物理目录下创建文件,没有创建权限。

默认WebDeploy程序会添加防火墙例外处理,但是如果还是不行,则需要手工添加一下的。

在配置好站点的物理目录权限之后我们开始发布web项目:

好了,到目前为止,Web Deploy的配置,就大功告成了,一定要重启服务器

 

 

右键项目选择”发布”:

下面还需要进行测试(接着看,不要走,测试里面有一步权限配置非常重要)

  图片 53

1、新建一个IIS站点

 

图片 54

   然后新建一个配置文件,当然也可以选择之前的,建议新建一个。

特别值得注意的是,这个IIS站点所在的目录的文件夹,一定要有Local
Service权限!否则在发布的是否,会提示权限不正确!

  图片 55

图片 56

之后点击下一步,节奏配置 Web Deploy:

 

  图片 57

class=”underline”>2、在站点的IIS管理器权限里面,添加刚才新增IIS管理用户

说明:服务器:输入IP地址即可

图片 58

        站点名称:格式为”站点名称“/”应用程序名称”

图片 59

        用户密码即为上面我们配置的用户密码。

 

       
目标URL:一般格式:

图片 60

     
 之后点击验证,出现图片 61表示信息无误,可以进行发布了。接下来点击下一步,直到发布完成,这里由于我们使用的是LocalDB,因此我们不用进行数据库配置。

这里有个指的注意的,IIS支持子站点的详细权限配置,如有有子应用,可以进行类似的配置

四、配置LocalDb数据库

 

       LocalDB的是一个SQL Server Express轻量级版本的数据库引擎。
它在用户模式下启动、执行。LocalDB的运行在一个特殊的SQL Server
Express的执行模式,所以允许您使用MDF文件数据库。通常情况下,LocalDB的数据库文件都保存在web项目的App_Data文件夹下面。

3、在Visual Studio 2015里面新建一个asp.net
web applicaiton空项目,进行测试

      注意:在生产环境的Web应用程序中,我们不推荐您使用SQL Server
Express。
尤其, LocalDB不应该被用于Web应用程序的生产环境,因为它设计之初不要求使用IIS
然而,LocalDB的数据库能够很容易地迁移​​到SQL Server或SQL
Azure中——摘自《ASP.NET MVC 5 – 创建连接字符串(Connection
String)并使用SQL Server
LocalDB》.

图片 62

     了解LocalDB之后,我们如何让我们的ASP.NET
MVC项目能访问呢?首先,我们需要设置我们的项目,将数据库文件包含到项目中:

图片 63

     图片 64

新建一个网页

  然后重新发布。

图片 65

之后在站点物理路径对于的应用程序目录下会有对于的App_Data文件夹,其中包含了我们的数据库文件。

 

之后打开 SQL Management Studio.并使用(LocalDb)v11.0,Windows
身份验证登陆,然后附加我们项目的数据库。

4、测试发布

接着在IIS中修改项目对应应用程序池的标识为”Local
System”。原因参考这里.

图片 66

 

图片 67

在完成以上所有步骤之后,我们的所有工作便已经完成了,在浏览器中输入地址就可以访问我们的Web了。附图两张:

图片 68

图片 69

这里的站点名称,就是IIS的站点名称,如果是子站点,就填写

图片 70

WebDeploy测试/子站点

  

图片 71

        

在发布之前,最好预览一下,这是一个很好的发布习惯!

图片 72

最后点发布,会出现记录

图片 73

好了,看一下效果


作者:张柔,发布于  博客园  与 
张柔的博客

转载请注明出处,欢迎邮件交流:zhangrou@printhelloworld.com,或者加QQ群:11444444

发表评论

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