图文详解远程部署ASP.NET MVC 5项目

图文详解远程部署ASP.NET MVC 5项目

话外篇:

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

一、本文实验环境:

      Windows Server 2012 R2

      SQL Server 2012 Express

     Visual Studio 2013

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

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

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

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

 

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

               

    之后点击下一步: 

       

       

       

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

      

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

      

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

      

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

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

      

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

     

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

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

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

    

    然后点击"添加用户":

    

     然后配置账户名和密码:

   

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

  5.配置站点用户权限

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

  

  之后点击“允许用户”:

 

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

 

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

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

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

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

 

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

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

 

右键项目选择"发布":

  

 

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

  

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

  

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

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

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

        目标URL:一般格式:http://ip:端口号/y应用程序名称,在我们发布完成之后,浏览器会自动的打开这个url。

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

四、配置LocalDb数据库

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

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

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

     

  然后重新发布。

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

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

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

 

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

  

        

标签:  MVCASP.NET
8
« 上一篇: ArcGIS Runtime for Android 使用异步GP服务绘制等值线
posted @  2014-05-25 19:19  Mr|Right 阅读( 3814) 评论( 15编辑  收藏
  
#1楼   2014-05-25 20:09  stg609   
不错的东东,就是感觉有点麻烦,我都是直接发布到文件系统,然后拷贝到远程服务器
  
#2楼 [ 楼主2014-05-25 21:09  Mr|Right   
@stg609
感谢前辈大驾光临啊,拜读过您博客的不少文章,写的很好,排版也漂亮,收获很多啊,以后多向您学习..。远程发布时配置起来确实要花一些时间,不过如果配置好了之后,会省去不少复制粘贴的时间,所以看自己习惯了...
  
#3楼   2014-05-25 23:50  V·Shawn   
一般都远程桌面,直接拷过去
  
#4楼 [ 楼主2014-05-26 00:41  Mr|Right   
@SingleX
恩,我一般也是拷贝粘贴,但是总觉得每次编译之后都要拷贝,感觉有点麻烦,所以就看看有木有不用来回粘贴复制的!其实感觉这样配置完了之后还是很方便的!
  
#5楼   2014-05-26 09:14  阳光追梦   
其实在发布时就直接发到远程服务器上就行了,没有这么麻烦的,不过还是学习了。
  
#6楼   2014-05-26 09:53  vbfool   
@stg609
引用 不错的东东,就是感觉有点麻烦,我都是直接发布到文件系统,然后拷贝到远程服务器

用了发布工具之后,你会发现比拷贝过去轻松多了,可以单独更新单个页面的,也可以直接更新Bin,数据传输量会小很多,速度也快了。
  
#7楼 [ 楼主2014-05-26 12:20  Mr|Right   
@阳光追梦
想请教一下您直接发布到远程服务器是如何操作的..查了一下也没有找到相关的资料(除了使用Web Deploy)。还望您能指点!
  
#8楼 [ 楼主2014-05-26 12:21  Mr|Right   
@vbfool
确实感觉用发布工具要方便很多,编译直接发布..简单快速..
  
#9楼   2014-05-27 08:56  SmartBooks   
微软提供的标准解决方案还是很不错的,实际配置起来也没有那么复杂。最近几个项目都采用这种方式部署了,并且还是增量更新的。速度非常快。
  
#10楼   2014-05-29 00:23  寒剑飘零   
bucuo mark
  
#11楼   2014-08-18 16:41  中和软件信息技术推进   
请教一下 Web部署代理服务怎么设置的。
我一直报错 USER_NOT_ADMIN
  
#12楼   2014-12-04 09:57  张小驴同学   
用ftp模式,服务器装filezilla
  
#13楼   2015-03-04 22:16  scau_Joseph   
请问在连接验证时出现如下错误,是哪里出了问题呢?
  
#14楼   2015-04-15 16:18  情傷   
之前有用过,今天重新配置,出了点问题,查到此处,写得蛮详细的,补充一点
windows server 2008,测试下来,添加local service帐户后,只是修改权限还不够,我是非得添加完全控制权限,才可以正常发布,否则提示以下错误信息,在vs的发布那里,测试下来帐号验证也是通过的,后面是绿勾。
在远程计算机上处理请求时出错。
服务器在处理请求时遇到问题。请与服务器管理员联系以了解详细信息。

所以,必要的时候,还是要添加Local Service帐户的完全控制权限才可以正常发布。
  
#15楼   2015-04-27 19:47  一苇渡江   
清楚怎么调用vs publish那个功能接口嘛?
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值