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

一直是报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. MLlib决策树与集成树

    决策树是一种常见的分类与回归机器学习算法,由于其模型表达性好,便于理解,并能取得较好的效果,而受到广泛的应用.下图是一个简单的决策树,决策树每个非叶子节点包含一个条件,对于具有连续值的特征,该条件为一 ...

  2. html websocket

    from:http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/ websocket 规范升级过,在该链接的文章内未提及,后面 ...

  3. Android分享一款漂亮的折叠书架菜单

    一个Android折叠书架菜单,效果极佳,给人的视觉感觉很好,便于使用. FoldingMenu

  4. windows下C++高精度计时

    写代码时,经常会计算某一段代码的运行时间,以下提供一个微秒级别的类供参考 class CTimeCost { public: CTimeCost(const string &str) : m_ ...

  5. JSP里面ajax不能返回后台传出的值得问题。。。。

    问题代码: <%@ page contentType="text/html;charset=gb2312"%><html> <head> < ...

  6. 使用Junit等工具进行单元测试

    一.类的定义: 类是同一事物的总称,类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类. 二.Junit工具的使用: 1.首先新建一个项目叫JUnit_Test,我们编写一个 ...

  7. java异常处理

    try{}catch(){}中的代码与外部代码之间有一定的逻辑关系,需要考虑到如果抛出异常的情况下,外部代码是否可以执行. 在需要捕获异常前尽量不要代入非异常代码,捕获后相关的代码放在一起.

  8. SQL Server恢复软件SysTools SQL Recovery/SysTools SQL Server Recovery Manager

    SQL Server恢复软件SysTools SQL Recovery/SysTools SQL Server Recovery Manager http://www.systoolsgroup.co ...

  9. ABP理论学习之N层架构

    返回总目录 自从写这个系列博客之后,发现很多园友还是希望有个直接运行的demo,其实在github上就有官方的demo,我直接把这demo的链接放到这里吧,另外,我分析,这些找不到demo的同学,很可 ...

  10. EQueue性能测试计划

    1.发送消息吞吐量的测试: 1)单台producer单个进程的发送消息tps2)单台producer多个进程的发送消息tps3)单台broker的接收消息tps,由于单台producer可能压不满,所 ...