Asp.net mvc 4 URL/%20/使用外部连接字符串或appSettings文件引发配置文件错误

Asp.net mvc 4 URL/%20/使用外部连接字符串或appSettings文件引发配置文件错误,asp.net-mvc-4,iis-10,Asp.net Mvc 4,Iis 10,让一些笔测试人员测试一个ASP.NET MVC4站点,他们发现我的URL显示了一个“原始”错误:/%20/e.g “/”应用程序中出现服务器错误。 配置错误 描述:处理服务此请求所需的配置文件时出错。请查看下面的特定错误详细信息,并适当修改配置文件。 分析器错误消息:配置源文件“Web\u ConnectionStrings.config”也在父级中使用,这是不允许的。 源错误: 第17行: 第18行: 第19行: 第20行: 第21行: 虽然应该是这样,但这不是一个正常的404错误,我已经捕

让一些笔测试人员测试一个ASP.NET MVC4站点,他们发现我的URL显示了一个“原始”错误:/%20/e.g

“/”应用程序中出现服务器错误。 配置错误 描述:处理服务此请求所需的配置文件时出错。请查看下面的特定错误详细信息,并适当修改配置文件。 分析器错误消息:配置源文件“Web\u ConnectionStrings.config”也在父级中使用,这是不允许的。 源错误: 第17行: 第18行: 第19行: 第20行: 第21行: 虽然应该是这样,但这不是一个正常的404错误,我已经捕捉到这些错误并显示一个自定义页面。我还捕捉到了500条,并很好地展示了它们。此错误发生的时间早于global.asax.cs中的应用程序错误()

这似乎是由于斜杠空间斜杠混淆了IIS或应用程序,并且它试图多次加载web.config的include文件或其他内容造成的

如果我以正常的方式包含这些部分(不是外部文件-只是web.config中的普通XML部分),那么一切都会按照预期工作,自定义404页面会显示出来

如果您删除了%20并只做了两次斜杠,则一切正常。似乎它必须是这个特定的URL

我看过其他关于IIS配置的文章,其中默认站点或虚拟路径指向相同的文件位置。但是我认为这不适用,因为我已经停止了默认站点,并且我在任何其他URL上都没有看到任何问题-该站点似乎工作正常

有人知道IIS试图用/%20/URL做什么吗?或者如何更优雅地处理这个问题

我喜欢将这些配置部分分开,这样更改就不会回收应用程序池,但如果这样做有问题(为什么允许使用外部文件?),那么我想我会将所有设置放入web.config本身

Server Error in '/' Application.
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: The configSource file 'Web_ConnectionStrings.config' is also used in a parent, this is not allowed. 

Source Error: 


Line 17:    <!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->
Line 18:    <!-- these settings can be found in external files - this prevents application restart when they are changed -->
Line 19:    <connectionStrings configSource="Web_ConnectionStrings.config" />
Line 20:    <appSettings configSource="Web_AppSettings.config" />
Line 21:    <!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->