ASP.NET(.NET framework 4.5)的ProtectedConfigurationProvider的初始化方法期间,网站BaseDirectory位于

ASP.NET(.NET framework 4.5)的ProtectedConfigurationProvider的初始化方法期间,网站BaseDirectory位于,asp.net,configuration,.net-4.5,provider,Asp.net,Configuration,.net 4.5,Provider,目标:在调用从ProtectedConfigurationProvider继承的类的Initialize方法期间,查找使用.NET Framework 4.5运行的ASP.NET web应用程序的BaseDirectory 问题:.NET Framework 4.5更改了ProtectedConfigurationProvider类在哪个域下运行(可能在应用程序生命周期中调用该类时也是如此?) 在安装.NET Framework 4.5之前,可以在初始化或解密从ProtectedConfigur

目标:在调用从ProtectedConfigurationProvider继承的类的Initialize方法期间,查找使用.NET Framework 4.5运行的ASP.NET web应用程序的BaseDirectory

问题:.NET Framework 4.5更改了ProtectedConfigurationProvider类在哪个域下运行(可能在应用程序生命周期中调用该类时也是如此?)

在安装.NET Framework 4.5之前,可以在初始化或解密从ProtectedConfigurationProvider继承的类的方法期间使用“AppDomain.CurrentDomain.BaseDirectory”检索。这将解析为类似于“c:\inetpub\wwwroot\xyz”的内容

安装.NET Framework 4.5后,在初始化或解密方法期间,“AppDomain.CurrentDomain.BaseDirectory”解析为类似于“C:\Program Files(x86)\Common Files\Microsoft Shared\DevServer\10.0\”的内容

用例:使用自定义的“ProtectedConfigurationProvider”类将对配置数据的调用从web.config/app.config重定向到应用程序目录中的自定义配置文件。(例如,或)。这在具有“configProtectionProvider”属性的配置节点中使用。此库被各种应用程序类型(例如winforms、wpf、windows服务、web应用程序)使用。上述问题仅在web应用程序的上下文中出现


注意:我所知道的从中收集信息的大多数对象在调用此方法时都为空。例如,HttpContext和Server.MapPath无法提供帮助,因为此时它们似乎不存在。是的,我也知道还有其他方法可以将配置文件从主配置文件中分离出来。此自定义库提供了使用“file”或“configSource”属性等属性无法提供的其他功能。

在使用自定义ProtectedConfigurationProvider加密appSettings部分时,我遇到了相同的问题(请注意,其他部分,如NHibernate/Spring的工作正常)。框架无法加载并定位程序集,因为它正在c:(…)\inetsrv文件夹中查找该程序集。