我不确定这个问题是否特定于 Accelerator for Web 角色(WAAWR:http ://waawebroles.codeplex.com/ )
编辑:我已确认此错误仅在我的 WAAWR 应用程序中引发 - 如果我将相同的代码部署为独立的 webrole,则不会引发此错误。
我正在尝试在通过 WAAWR 部署的应用程序上运行 WCF 路由/清理 url。此功能需要 asp .net 兼容模式。这是我的配置部分:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
<baseAddressPrefixFilters>
<add prefix="http://api.mydomain.com"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
我已经被这个错误困住了几个小时:
System.IO.FileLoadException:文件名:\?\C:\Resources\directory\XXXXXXXXXXXXXXXXXXXXXXXXXX\web.config 行号:74 错误:此配置部分不能用于此路径。当该部分锁定在父级别时会发生这种情况。锁定是默认情况下 (overrideModeDefault="Deny") 或由具有 overrideMode="Deny" 或旧 allowOverride="false" 的位置标记显式设置的。在 Microsoft.Web.Administration.Interop.IAppHostAdminManager.GetAdminSection(String bstrSectionName, String bstrPath) 在 Microsoft.Web.Administration.WebConfigurationManager.GetSectionInternal(String siteName, String virtualPath, String sectionPath, Type sectionType)
起初我认为您通过 Web 角色主机部署的应用程序是子目录/虚拟目录,所以我将此配置放入部署主机应用程序本身的 .config 文件中 - 但这并没有成功。我远程桌面编辑以查看发生了什么,看起来通过主机部署的每个应用程序都是它自己在 IIS 下的应用程序。此外,当您从 IIS 管理器浏览应用程序时,这些应用程序不会与部署主机位于同一驱动器上。所以我不确定为什么会抛出这个错误。
有什么想法吗?