使用PowerShell激活功能时,在FeatureActivated事件上阅读web.config

时间:2012-08-06 09:15:36

标签: sharepoint powershell web-config

在FeatureActivated事件(WebApplication scoped)上我想读取web.config以从中获取连接字符串。我使用以下代码打开web.config:

Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/", webApplication.Name);

当我通过Web界面激活该功能时,一切正常,但当我尝试通过PowerShell(Enable-SPFeature)执行相同操作时,代码失败。从我看到的,代码从路径C:\ inetpub \ wwwroot \ web.config(不存在)而不是C:\ inetpub \ wwwroot \ wss \ VirtualDirectories \\ web.config打开一个错误的web.config。

有人可以为我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

我为我的要求找到了解决方法。与您分享,以防万一:

        using (SPWeb web = properties.Feature.Parent as SPWeb)
        {
            SPWebApplication webApp = web.Site.WebApplication;
            Configuration config = WebConfigurationManager.OpenWebConfiguration("/", webApp.Name);
            // App settings are retrieved this way
            config.AppSettings.Settings["someAppSettingKey"].Value;

            // Connection string settings are retrieved this way
            config.ConnectionStrings.ConnectionStrings["someDBConnectionString"].ConnectionString
            web.Site.Dispose();
        }