代码背后更新web.config映射问题

时间:2009-09-18 22:56:00

标签: c# asp.net configuration asp.net-3.5

我从后面的代码我需要更新我的web.config。这在以前从来就不是问题,但是我最近收到了一个错误。错误说“无法映射路径'/'。” 注释掉的线条是我尝试过的不同变体。

//Configuration myWebConfig = WebConfigurationManager.OpenWebConfiguration(Server.MapPath("~"));
        //Configuration myWebConfig = WebConfigurationManager.OpenWebConfiguration("~");
        //Configuration myWebConfig = WebConfigurationManager.OpenWebConfiguration(null);
        Configuration myWebConfig = WebConfigurationManager.OpenWebConfiguration(".");
        // update pages theme
        RoleManagerSection section = (RoleManagerSection)myWebConfig.GetSection("system.web/roleManager");
        section.DefaultProvider = "SqlRoleManager";
        section.Providers.Clear();
        ProviderSettings providerSettings = new ProviderSettings();
        providerSettings.Name = "SqlRoleManager";
        providerSettings.Type = "System.Web.Security.SqlRoleProvider";
        providerSettings.Parameters.Clear();
        providerSettings.Parameters.Add("connectionStringName", "SimpleTickConnection");
        providerSettings.Parameters.Add("applicationName", "TheaterSales");
        section.Providers.Add(providerSettings);
        myWebConfig.Save();

4 个答案:

答案 0 :(得分:3)

我找出了错误的原因。将网站从我的本地C:驱动器移动到西部数字护照并运行应用程序后,错误开始。下面的代码行很好:

Configuration myWebConfig = WebConfigurationManager.OpenWebConfiguration("~/");

答案 1 :(得分:1)

乍一看,尝试制作WebConfigurationManager.OpenWebConfiguration(“。”);指向实际配置文件,例如web.config

WebConfigurationManager.OpenWebConfiguration(的 “web.config”);

确保在需要时也包含路径。

答案 2 :(得分:1)

文件路径“〜/”表示Web应用程序的根文件夹。 “〜”和null对方法没有任何意义; “”表示当前(即bin)文件夹。

答案 3 :(得分:0)

当我从Windows Vista切换到Windows 7时,发生了这种情况.Windows 7的默认安全性导致了这种情况,因为VS没有打开文件的权限。我刚刚以管理员身份重新启动了Visual Studio,它很简单。 我希望它可以帮助其他人。