您的位置:首页 > 运维架构 > 网站架构

如何发布.Net MVC 网站项目(攻略集锦)

2016-03-10 12:37 381 查看

参考文献

既然是攻略,就必然有参考文献,放在文章开头,以示敬意!

1.MVC项目发布步骤

2.未能从程序集加载“System.ServiceModel.Activation.HttpModule”

3. Win7 IIS 另一个程序正在使用此文件,进程无法访问

4.HTTP 错误 500.19 - Internal Server Error

1.发布MVC 网站

1.1.开始发布

打开你的MVC网站项目,右键点击项目,选择重新生成一下网站项目;再次点击右键->发布:





1.2.创建配置文件

弹出网站发布设置面板,点击自定义,创建新的发布配置文件:

输入你自己定义的配置文件名(这里随便输入):



1.3.选择连接方式

在发布方法中选“文件系统”,这样我们可以发布到自己指定的本机文件上:



选择自己指定的文件夹:通过点击下图中右上角红色箭头处创建新的文件夹,自定义命名(我的就写WebSite)。点击打开,进入下一步





1.4.设置发布模式

在配置中,要选择“Release”。

——发布模式(Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序)



1.5.确定发布

点击下一步:进入发布前的预览界面。

点击发布即可以发布你指定的文件夹中,这里,我发布的是C盘下的WebSite文件夹中。



2.将网站放入IIS服务器

2.1.新建IIS网站

通过->控制面板->管理工具->启动 ‘Internet信息服务(IIS)管理器’ 进入IIS界面。右键单击网站->添加网站



下面图中,左边红色方框内输入自定义的网站名称(请尽量用英文,这里我就写MyPhotoSite),右边红色箭头处需要点击 ‘选择(E)…’ 进行更改(也可以不更改,我就没有更改)。



2.2选择物理路径

选择 “已发布网站文件夹” 的物理路径,找到之前发布MVC网站的文件夹。



2.3绑定IP地址

点击下拉列表选择 “自己当前的IP地址”



点击确定,OK,搭建完毕!

3.注册IIS服务器

3.1打开注册命令器

先在程序菜单->VS2012里面->Visual Studio Tools->VS2012开发人员命令提示。右键单击 “VS2012开发人员命令提示”。以管理员身份运行。(如果不是以管理员身份运行,将会提示“权限不足”错误)





3.2运行注册命令

输入命令:aspnet_regiis -i 按回车。等待运行大概 1分钟左右提示安装完毕(我的机子慢所以提供1分钟供大家参考,大家不要着急慢慢等待安装完成即可)。

4.常见问题集锦

4.1未能从程序集加载“System.ServiceModel.Activation.HttpModule”

完整报错信息:

未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.ServiceModel.Activation.HttpModule”



解决方法:

在命令行中运行下面的命令:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i -enable
  

如果提示如下:



  

则可先执行下面的命令:

C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -ua
  

然后到控制面板->程序->启用或关闭Windows功能,如下图所示,将需要的WCF服务勾选上就好了。



  

4.2Win7 IIS 另一个程序正在使用此文件,进程无法访问

问题1:用VS2010打开原来用VS2012创建的Webservice项目,提示创建虚拟目录失败

问题2:直接启动IIS,无法启动,提示“另一个程序正在使用此文件,进程无法访问”

原因:80端口被占用

解决办法:停止占用80端口的程序(服务)

解决步骤:

1、cmd中运行netstat -ano 查看全部占用端口的程序(服务),参数o代表显示进程PID

2、在显示结果的第一列里找到占用80端口的进程,我这里是第一行 :本地地址 0.0.0.0:80 。如果cmd中不能显示全部信息,可以在cmd窗口的上方右键—属性,修改命令记录缓冲区大小和屏幕缓冲区大小高度。

3、在任务管理器里的服务标签页中找到PID对应的服务,我这是Apach,也不知道装什么软件装上的,这就很自然能够解释为什么也占用80端口了

4、在管理工具–服务中直接禁用Apach的服务。

IIS可以正常启动,问题2解决。

但问题1没有解决,仍然报错:创建虚拟目录失败 错误:在本地计算机行,未能找到服务器 只有本地IIS服务器支持创建虚拟目录

用VS2010创建新的web应用程序,一切正常可以运行,说明问题不在VS2010本身。

用记事本打开webservice项目的csproj文件,删除其中“http://localhost:2727/”行,保存后,用VS2010可以正常打开,并运行。问题1解决。

  

4.3HTTP 错误 500.19 - Internal Server Error

windows 2008下IIS7 安装ASP.NET 遇到如下错误:



HTTP 错误 500.19 - Internal Server Error

无法访问请求的页面,因为该页的相关配置数据无效。



详细错误信息模块 IIS Web Core

通知 BeginRequest

处理程序 尚未确定

错误代码 0x80070021



配置错误 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault=”Deny”),或者是通过包含 overrideMode=”Deny” 或旧有的 allowOverride=”false” 的位置标记明确设置的。



配置源

219:
<
add name=”ScriptModule” preCondition=”managedHandler” type=”System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35”/>
<
/modules>

220:
<
handlers>

221:
<
remove name=”WebServiceHandlerFactory-Integrated”/>



解决方法:

控制面板–>程序和功能–>打开或关闭windows功能–>角色

的这里,如果还未安装“web服务器(IIS)”,则选择“添加”。

如果已经安装了,则选择“web服务器(IIS)”–>添加角色服务。

选择“应用程序开发(已安装)”–>“ASP.NET”。





另其他类似错误一:





HTTP Error 500.19 - Internal Server Error

配置错误: 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的 (overrideModeDefault=”Deny”),或者是通过包含 overrideMode=”Deny” 或旧有的 allowOverride=”false” 的位置标记明确设置的。



出现这个错误是因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。要取消锁定可以运行命令行 %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 。其中的 handlers 是错误信息中红字显示的节点名称。

如果modules也被锁定,可以运行%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

另外,如果使用Asp.net的朋友,在安装IIS7的时候一定记得勾选Asp.net,默认不选,也会出现类似的错误信息



另其他类似错误二:





HTTP 错误 500.19 - Internal Server Error

无法访问请求的页面,因为该页的相关配置数据无效。



详细错误信息模块 IIS Web Core

通知 BeginRequest

处理程序 尚未确定

错误代码 0x80070005

配置错误 由于权限不足而无法读取配置文件

原文件夹,右击选择它的属性,打开“安全”选项卡,看到“组或用户 名”,单击“编辑”按钮添加一个新的用户名“Everyone”,然后更改它的权限,将第二个权限“修改”设置为允许就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: