如何发布.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&…

ssh-scan处理手记

登陆一台Linux RedHat As4的服务器&#xff0c;发现有很多网络连接&#xff0c;为本机去连接其他服务器的22端口。再一看进程&#xff0c;好多ssh-scan的进程。估计是密码设得太简单&#xff0c;被人家黑了。处理思路&#xff1a;找到ssh-scan进程的相应程序文件&#xff0c;删…

常用 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;称为一样“资源”&…

Pa interface issue——PA_EXCEED_ROUND_LIMIT

最近处理一个PA_TRANSACTION_INTERFACE_ALL的Error Error_code:PA_EXCEED_ROUND_LIMIT 原因是PA_EXCEED_ROUND_LIMIT is null or too small for cost*invoice_rate - cost*actual_rate. 就是说limit的value为空或者不满足金额*当前汇率与金额*录入时汇率的差额。 问题的难点在于…

C#实现 Linq 序列的Distinct—— IEnumerable.Distinct()——IEqualityComparer

转载自诗人江湖老&#xff0c;原文地址 在C#中使用List或者Collection的时候&#xff0c;我们经常需要使用到Distinct操作&#xff0c;但是微软默认提供的Distinct重载方法并不能满足我们的需求。这时候&#xff0c;我们就需要自己动手做一番工作了。 Distinct方法的重载 Linq…

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

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

[深入学习C#]利用反射给对象赋值

转载自诗人江湖老&#xff0c;原文地址  C#中利用反射能够获取对象的属性信息&#xff0c;也可以利用反射给对象赋值。 我们如果想利用凡是给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值&#xff0c;但要注意值的类型要与属性保持一致。   假设我们有如下…

快速配置 Samba 将 Linux 目录映射为 Windows 驱动器

一、局域网内的 Linux 服务器上操作步骤&#xff1a;  1、安装samba&#xff08;CentOS Linux&#xff09;&#xff1a; yum install samba system-config-samba samba-client samba-common2、创建www账号 /usr/sbin/groupadd www/usr/sbin/useradd -g www wwwcat /etc/passw…

用委托来实现IEqualityComparer接口

转载自诗人江湖老&#xff0c;原文地址 class FuncEqualityComparer<T> : IEqualityComparer<T> {readonly Func<T, T, bool> _comparer;readonly Func<T, int> _hash;public FuncEqualityComparer( Func<T, T, bool> comparer ): this( compar…

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;很多需要直接修改数据的功能不…

开源文化与开源社区

开源文化的形成  1998年2月8日&#xff0c;Bruce Perens发表的著名文章“TheOpen Source Definition”让当时众多的开源爱好者&#xff08;大多是***和程序员&#xff09;对开源理念有了一个清晰的认识。在那之后&#xff0c;更多的人开始关注开源所带来的实用意义和背后的文…

C#利用反射实现实体类ListT索引器

相关背景: 在项目开发中&#xff0c;我们经常会自定义一些实体类&#xff0c;在某些需要动态赋值的功能中&#xff0c;我们无法知道到下一个需要赋值的字段名称是什么&#xff0c;只知道会从其他返回需要赋值的字段名称和值&#xff0c;这时候就需要实现索引器了&#xff0c;就…

C#利用反射将Datatable转化为指定实体类ListT

背景介绍 在软件开发中肯定免不了和数据库打交道&#xff0c;我们对数据的增删改查最终会转化为SQL在数据库中执行。从SQLServer中查出数据一般有两种方式&#xff1a;一是ADO.NET直接写SQL语句从数据中查出数据&#xff0c;另一种是利用ORM框架得到数据。ADO.NET作为传统的数据…

Java API 设计清单

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

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

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

C#利用反射将实体类ListT转化为Datatable

背景介绍 C#中实体类的操作十分简便&#xff0c;一般情况下不需要涉及ADO.NET&#xff0c;如果需要将实体类转化为Datatable&#xff0c;这个时候就需要手动写一个方法了&#xff0c;代码如下图所示&#xff1a; public static class IEnumerableExtention{/// <summary>…

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…