如何在Web上下文中替换OpenExeConfiguration(asp.net mvc 1)
发布时间:2020-12-14 22:23:40 所属栏目:资源 来源:网络整理
导读:好的,所以我们有一些目前正在使用OpenExeConfiguration读取配置文件的东西,但是这在web上下文中运行时不起作用。 我已经尝试了以编程方式打开web.config的各种不同的方法,但我似乎无法让它读取正确的web.config文件。如果重要的是我正在VS 2008中进行调试
好的,所以我们有一些目前正在使用OpenExeConfiguration读取配置文件的东西,但是这在web上下文中运行时不起作用。
我已经尝试了以编程方式打开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中右键单击并以管理员身份运行:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |