我已经尝试了以编程方式打开web.config的各种不同的方法,但我似乎无法让它读取正确的web.config文件。如果重要的是我正在VS 2008中进行调试。
1. config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(System.Web.httpContext.Current.Request.ApplicationPath);2. config = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationfileMap { ExeConfigfilename = "web.config" },ConfigurationUserLevel.None);3. config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");4. config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(null);5. System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath);
它打开错误的配置文件(机器配置或VS /IDE/Web.config)或抱怨错误:
{System.Configuration.ConfigurationErrorsException:加载配置文件时出错:无法映射路径“/”。 —> system.invalIDOperationException:映射路径“/”失败。
编辑 –
好的结合了
config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
并运行Visual Studio 2008 As administrator工作。我希望我们在部署到我们的Web服务器/客户端环境时不会遇到安全/许可问题!
解决方法 所以最后我用这个代码(不得不处理Web应用程序是运行的,还是我们的单元测试代码正在运行)。System.Configuration.Configuration config = null; if (System.Web.httpContext.Current != null && !System.Web.httpContext.Current.Request.PhysicalPath.Equals(string.Empty)) config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); else config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
还必须以管理员模式运行Visual Studio – 我发现您可以将其设置为快捷方式上的属性,因此您不需要记住每次在windows 7中右键单击并以管理员身份运行:)
总结以上是内存溢出为你收集整理的如何在Web上下文中替换OpenExeConfiguration(asp.net mvc 1)全部内容,希望文章能够帮你解决如何在Web上下文中替换OpenExeConfiguration(asp.net mvc 1)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)