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

话外篇:

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

一、           添加IIS管理服务

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

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

 home88一必发 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里面的步骤是完全一致!

 home88一必发 2

      SQL Server 2012 Express

下面是完整的步骤

 home88一必发 3

     Visual Studio 2013

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

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

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

home88一必发 4

三、           设置站点权限

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

 

 home88一必发 5

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

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

home88一必发 6

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

home88一必发 7

 

 

 

添加一个windows标准用户

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

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

四、           标准用户访问

        home88一必发 8       

home88一必发 9

 home88一必发 10

添加IIS管理服务,正好这两天在玩Azure和Windows Serverhome88一必发。    之后点击下一步: 

home88一必发 11

 home88一必发 12

       home88一必发 13

home88一必发 14

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

       home88一必发 15

home88一必发 16

 home88一必发 17

       home88一必发 18

 

 home88一必发 19

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

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

 

      home88一必发 20

home88一必发 21

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

home88一必发 22

      home88一必发 23

home88一必发 24

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

home88一必发 25

      home88一必发 26

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

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

home88一必发 27

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

 

      home88一必发 28

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

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

home88一必发 29

     home88一必发 30

home88一必发 31

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

home88一必发 32

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

home88一必发 33

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

home88一必发 34

    home88一必发 35

home88一必发 36

    然后点击”添加用户”:

home88一必发 37

    home88一必发 38

 

     然后配置账户名和密码:

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

   home88一必发 39

home88一必发 40

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

home88一必发 41

 
5.配置站点用户权限

home88一必发 42

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

home88一必发 43

  home88一必发 44

home88一必发 45

  之后点击“允许用户”:

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

 home88一必发 46

7、添加一个IIS管理用户

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

home88一必发 47

 home88一必发 48

home88一必发 49

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

home88一必发 50

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

 

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

7、配置防火墙

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

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

home88一必发 51

home88一必发 52

 

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

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

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

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

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

 

 

右键项目选择”发布”:

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

  home88一必发 53

1、新建一个IIS站点

 

home88一必发 54

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

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

  home88一必发 55

home88一必发 56

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

 

  home88一必发 57

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

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

home88一必发 58

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

home88一必发 59

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

 

       
目标URL:一般格式:

home88一必发 60

     
 之后点击验证,出现home88一必发 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》.

home88一必发 62

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

home88一必发 63

     home88一必发 64

新建一个网页

  然后重新发布。

home88一必发 65

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

 

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

4、测试发布

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

home88一必发 66

 

home88一必发 67

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

home88一必发 68

home88一必发 69

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

home88一必发 70

WebDeploy测试/子站点

  

home88一必发 71

        

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

home88一必发 72

最后点发布,会出现记录

home88一必发 73

好了,看一下效果


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

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

相关文章