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

转载自诗人江湖老,原文地址

参考文献

既然是攻略,就必然有参考文献,放在文章开头,以示敬意!
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”,然后更改它的权限,将第二个权限“修改”设置为允许就可以了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssh建立原理 及配置两台主机的远程连接实现免密登陆

一、SSH是什么&#xff1f;具体的实现有哪些&#xff1f; SSH是一种协议标准 SSH是用在安全远程登录以及其它安全网络服务 二、SSH原理&#xff1a; SSH为Secure Shell的缩写&#xff0c;默认端口22&#xff0c;由IETF的网络小组&#xff08;Network Working Group&…

常用 SQL Server 规范集锦

原文地址 常见的字段类型选择   &#xff11;.字符类型建议采用varchar/nvarchar数据类型   &#xff12;.金额货币建议采用money数据类型   &#xff13;.科学计数建议采用numeric数据类型   &#xff14;.自增长标识建议采用bigint数据类型 (数据量一大&#xff…

Linux服务器搭建----Web服务器(apache)

WWW的介绍 万维网&#xff08;亦作“Web”、“WWW”、“W3”&#xff0c;英文全称为“World Wide Web”&#xff09;&#xff0c;是一个由许多互相链接的超文本组成的系统&#xff0c;通过互联网访问。在这个系统中&#xff0c;每个有用的事物&#xff0c;称为一样“资源”&…

F5 配置手册 -F5 BIG-IP 10.1-1-激活

F5 配置手册 F5 BIG-IP 10.1-1-激活 统一沟通(中国)有限公司 2012-01-29 前言&#xff1a; F5---太贵! 不过你如果有命运看到这个文章,F5也就不值钱了。 因为:F5提供测试版的虚拟机,我们买不起,总应该玩得起吧! 但愿F5提供更多的机会,给别人机会,也是给自己机会。 参照: 你也可…

Beginning iCloud in iOS 5 Tutorial Part 2(转载)

原文地址&#xff1a;http://www.raywenderlich.com/6031/beginning-icloud-in-ios-5-tutorial-part-2 Setting Up the User Interface The Xcode project template we chose already set up an empty view controller for us. We will extend it by adding the current docume…

JQuery Datatables 服务端分页简单应用学习

背景介绍 最近在一个简单小项目中碰到需要一个前端数据表格控件&#xff0c;在看了网上的资料后最终选择了JQuery Datatables。Datatables功能及其强大&#xff0c;基本满足我的所有需求&#xff0c;在加上其插件Editor具有inline模式&#xff0c;很多需要直接修改数据的功能不…

Java API 设计清单

为什么80%的码农都做不了架构师&#xff1f;>>> 在设计Java API的时候总是有很多不同的规范和考量。与任何复杂的事物一样&#xff0c;这项工作往往就是在考验我们思考的缜密程度。就像飞行员起飞前的检查清单&#xff0c;这张清单将帮助软件设计者在设计Java API的…

利用FSMT进行文件服务器迁移及整合

当企业文件服务器&#xff08;DFS、共享文件夹等&#xff09;面临硬件更新、系统升级或文件服务器合并的情况时&#xff0c;往往会出现不确定的文件丢失、需要重新设置所有权限、无法将多个文件服务器集成到一台服务器上等问题&#xff0c;为了保证文件服务器的数据完整以及权限…

RHEL 6上KVM的安装配置及使用-将物理接口桥接到桥接器

作业环境服务器端操作系统&#xff1a;Red Hat Enterprise Linux Server release 6.0 (Santiago)KVM&#xff1a;qemu-kvm-0.12.1.2-2.113.el6.x86_64 客户端操作系统&#xff1a;Windows 7KVM管理工具&#xff1a;Xming 6.9 一、安装KVM及相关软件 1、KVM 需要有 CPU 的支持&a…

C#中IEnumerableT.Distinct()将指定实体类对象用Lambda表达式实现多条件去重

背景说明 在EF等ORM框架中需要以List实体类的方式对数据进行大量操作&#xff0c;其中免不了对一些数据进行去重复&#xff0c;而C#中IEnumerable.Distinct()便提供了这一功能。只是对刚开始接触的新人来说比价抽象难以接受&#xff0c;本文会对这一功能进行简要说明&#xff…

C#中利用Linq.Dynamic实现简单的动态表达式构建查询

背景介绍 在ADO.NET中我们可以根据用户输入的查询条件拼接出指定的SQL语句进行查询或者筛选出所需的数据&#xff0c;但是在ORM框架如EF中&#xff0c;我们一般用LINQ操作数据查询&#xff0c;LINQ是否可以像SQL一样拼接查询条件呢&#xff1f;答案是可以的。这一技术叫Linq.D…

C#中IEnumerableT.GroupBy()的简单使用

背景介绍 在实际项目中&#xff0c;对数据进行GroupBy肯定是常用需求之一&#xff0c;特别是采用EF等ORM框架后隔绝了用SQL语句直接操作数据&#xff0c;LINQ中的GroupBy肯定是要掌握的。 首先先对一个字段GroupBy&#xff0c;代码如下&#xff1a; static void Main(string[…

25 个精美的后台管理界面模板和布局

任何系统都会有一个管理后台&#xff0c;好看的管理后台看起来赏心悦目&#xff0c;管理的时候心情也舒畅&#xff0c;本文给大家推荐 25 个制作精美的后台管理界面的模板和布局&#xff0c;你值得拥有。 Free Admin Template Web App Theme Spring Time Free Admin Template F…

C#中IEnumerableT.Aggregate()的简单使用

背景介绍 IEnumerable<T>.Aggregate()在LINQ使用中好像很不起眼&#xff0c;但我个人认为这是十分实用并且强大的&#xff0c;支持自定义聚合操作&#xff0c;方法定义中的Func包含3个TSource参数&#xff0c;分别为下一个执行聚合的元素&#xff0c;当前聚合的元素&…

C#中IEnumerable.OfType()方法的简单使用

背景介绍 OfType的定义十分简单&#xff1a;IEnumerable.OfType(TResult)&#xff0c;如其定义&#xff0c;其中TRsult为所要过滤的类型。由于非泛型集合一律以Object类型存储对象&#xff0c;因此一个非泛型集合可能存储了各种类型&#xff0c;而OfType()方法可以轻松的对指定…

C#中IEnumerableT.Join()和IEnumerableT.GroupJoin()简单使用

背景介绍: 在无主外键关系的表中如果如果要关联就要用Join()和GroupJoin()方法了&#xff0c;我们先看Join()方法&#xff0c;代码如下&#xff1a; static void Main(string[] args) {List<SW_XSDD> sw_xsdd new List<SW_XSDD>(){new SW_XSDD { com_id "…

利用ASP.NET MVC 的默认类型绑定器---将Jquery datatables中的数据强类型绑定到实体类中

背景描述&#xff1a; 本文参考资料&#xff1a;https://blog.csdn.net/honantic/article/details/45913403 阅读了上述博文后对我产生了启发&#xff0c;在ASP.NET MVC 5中如何将大批量的数据比如说表格中的数据传到后台&#xff0c;是否可以像HTML辅助类一样强类型绑定实体…

JavaScript模态对话框类(拖拽时动画)

2010年写了一个模态对话框类&#xff0c;这次进行一些重构和扩充。拖拽时使其有动画效果。接口没变&#xff0c;如下 new ModelDialog({caption 标题 对话框标题(默认)template 主体内容 (默认)dialogCls 对话框className md-dialog(默认)headCls 头部classNa…

C#中其他简单LINQ查询表达式的简单使用介绍

本文主要记录下其他简单LINQ表达式&#xff0c;因为比较简单&#xff0c;记录下以后方便回忆&#xff0c;本文也会持续更新。 一些有用的LINQ扩展方法&#xff1a; LINQ表达式作用是否延迟查询Range生成指定范围内的整数的序列 Repeat生成包含一个重复值的序列 Skip跳过指定数…