4

FeatureActivated イベント (WebApplication スコープ) で、web.config を読み取ってそこから接続文字列を取得したいと考えています。次のコードを使用して、web.config を開きます。

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

Web インターフェイスを介して機能をアクティブ化するとすべて正常に動作しますが、PowerShell(Enable-SPFeature) を介して同じことを実行しようとすると、コードが失敗します。私が見たところ、コードは C:\inetpub\wwwroot\wss\VirtualDirectories\\web.config ではなく、パス C:\inetpub\wwwroot\web.config (存在しない) から間違った web.config を開きます。

この問題の回避策を教えてもらえますか?

4

1 に答える 1

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();
        }
于 2012-09-06T16:45:43.800 に答える