昨天需要新建一个虚拟目录放在以前的一个站点下,新建了应用池,配好了环境置顶路径,虚拟目录页建立成功 ,但是程序一直是报错。这个程序我在测试服务器上是测过的,新建了一个站点是可以正常访问的,排除了程序问题。

一直是报500,在webconfig配置抛出错误的 customErrors节点也不起作用,后来把程序全部删掉放了一个静态页,是可以访问成功的,说明虚拟目录的配置也是没问题的,毫无头绪,在网上查了好久各种配置都试过了还是不行,今天无意中看见了一个帖子给我灵感,然后试了一下果然成功了

虚拟目录的webconfig是继承了根目录的webconfig的所有配置的,所以如果有节点名称是一样的话就会有冲突报错。这时候很可能会出 http 500的错误

这个时候有两种方法可以解决

1.在根目录解除子目录的继承

 <configuration>
<!--...其他配置...-->
<location path="." inheritInChildApplications="false">
<system.web> </system.web>
</location>
<!--...其他配置...-->
</configuration>

这里的inheritInChildApplications就是接触子目录webconfig的继承,将不需要子目录继承的节点放在这个节点里面就ok了

这种方法的优点是很简单,但是不够灵活,同时面对较复杂的Web.config配置,仍可能会报错。比如根目录和子目录有着不同的system.webServer配置,按照这个方法在根目录的system.webServer外面加上了location限制,不幸的是,IIS7下会出现500错误。

2.在子目录对冲突的节点处理

根目录节点

 <connectionStrings>
<add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=sa123" providerName="System.Data.SqlClient"/>
</connectionStrings>

子目录节点

 <connectionStrings>
<clear/>
<add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=sa123" providerName="System.Data.SqlClient"/>
</connectionStrings>

在冲突的节点前先clear,清除之前的配置,然后再加载下面的配置就可以了,除了clear 还有remove也可以

 <connectionStrings>
<remove name="DBConnectionString"/>
<add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=sa123" providerName="System.Data.SqlClient"/>
</connectionStrings>

这种配置方法可以用在所有的节点上,使用起来也比较灵活,个人推荐用第二种方法。

参考来自 http://blog.csdn.net/papalian/article/details/7204248  就是我看的那篇帖子,介绍的更为详细一些

最后说一下,昨天从下午三点到晚上十点,今天上午又弄了一个小时。希望大家可以用得上,以后出现同样的问题直接就可以用了,大家也要多分享

虚拟目录webconfig的配置的更多相关文章

  1. Nginx虚拟目录支持PHP配置

    感谢作者:http://blog.csdn.net/fangaoxin/article/details/7030139 location ~ ^/test/.+\.php$ { alias /var/ ...

  2. JSP配置了虚拟目录使用JavaBean报错

    今天遇到一个很棘手的问题,在jsp文件中使用useBean,网页返回码出现了500服务器内部错误,报错信息如下: The value for the useBean class attribute w ...

  3. Nginx 虚拟目录和虚拟主机的配置

    nginx.conf 配置文件的几个常用命令 nginx 配置文件主要分为六个区域: main: 全局设置 events: nginx工作模式 http: http设置 sever: 主机设置 loc ...

  4. Apache,添加虚拟目录

    这几天在自己的虚拟机里面安装了2003,有人说window陪iis较好,但是对iis无兴趣,就自己装了apache,下面介绍如何配置自己的虚拟目录. 想配置自己的虚拟目录,那必须要知道点apache的 ...

  5. Tomcat【介绍Tomcat、结构目录、虚拟目录、临时域名、虚拟主机、体系结构】

    什么是Tomcat Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器. 为什么我们需要用到Tomcat 如果你学过html,c ...

  6. 重启虚拟目录或站点,不重启iis

    更改站点或虚拟目录的.net Framework 版本会导致重启整个iis服务,所以需要单独重启某个站点或虚拟目录 首先右键点击网站-所有任务-将配置保存到一个文件,从文件中查找到 Location ...

  7. 如何让虚拟目录里面的webconfig不继承网站的设置

    在一个网站 中国红木网 下 建一个虚拟目录,结果虚拟目录系统会调用 中国红木网 上的web.config, 在网上找到以下解决方案 在(如根目录)所在的Web.config加上 如:<locat ...

  8. 【转】如何让虚拟目录里面的webconfig不继承网站的设置

    [转]http://www.cnblogs.com/Sue_/articles/2037556.html 必須在上一层虚拟目录(如根目录)所在的Web.config加上 如:<location ...

  9. Tomcat虚拟目录配置方法及原理

    tomcat 安装好之后,只需要把你的程序包放到$Tomcat_Home$/webapps下就可以直接使用了.这样会使webapps越来越大就需要设置虚拟目录: 1.单个应用设置: 在<Host ...

随机推荐

  1. Node.js抓取网页

    前几天四六级成绩出来(然而我没考),用Node.js做了一个模拟表单提交并抓取数据的Web 总结一下用到的知识,简单的网页抓取大概就是这个流程了 发送Get或Post请求 表单提交,首先弄到原网页提交 ...

  2. css三级菜单效果

    一个简单实用的css三级菜单效果 <!doctype html> <html> <head> <meta charset="utf-8"& ...

  3. viso

  4. JQuery之$.ajaxPOST数据

    function postSimpleData() { $.ajax({ type: "POST", url: "/Service/SimpleData", c ...

  5. 四则运算安卓客户端UI截图(部分)

    1.我们组安卓手机客户端UI设计主要由林培文同学负责,界面中用到的素材全部由他一人用PS制作,所以在素材来源上当属原创啦.正因为UI由一个人设计,同时他还得分担少量后台代码的编写,颇多的工作量与人才短 ...

  6. 浅谈Js闭包现象

    一.1.我们探究这个问题的时候如果按照正常的思维顺序,需要知道闭包是什么它是什么意思,但是这样做会让我们很困惑,了解这个问题我们需要知道它的来源,就是我们为什么要使用闭包,先不管它是什么意思!     ...

  7. WPF计算

    设计思路: 用WPF窗体设计,在第一个数和第二个数的文本框中输入数值,单击录题按钮,数值保存在n1,n2文档中,把要做的题都保存完后,单击开始按钮,开始做题,每做完一道题,按Enter键,进入下一题, ...

  8. 代码自定义双色title的按钮

    所图所示,通过代码自定义这样的按钮. .h文件 // // CustomButtom.h // testPlus // // Created by 鹰眼 on 14/10/20. // Copyrig ...

  9. STOMP协议介绍

    STOMP,Streaming Text Orientated Message Protocol,是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息 ...

  10. Css 动画的回调

    在做项目中经常会遇到使用动画的情况.以前的情况是用js写动画,利用setTimeout函数或者window.requestAnimationFrame()实现目标元素的动画效果.虽然后者解决了刷新频率 ...