0

以下のコードを使用して、アプリケーションの Web 構成で appsetting キーの値を変更しました。

private void ChanngeDefaultPassword(string password)
{
    try
    {
        var objConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
        AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings");
        objConfig.AppSettings.Settings["DEFAULT_PASSWORD"].Value = password;
        objConfig.Save();
    }
    catch (Exception ex)
    {
    }
}

エラーが表示されます

不正な操作を実行しようとしました。

このエラーは、構成の変更を保存する手順でスローされます。

4

3 に答える 3

0

AllowLocationfileにも設定する必要があると思いますmachine.config。これは、要素を使用して個々のページを構成できるかどうかを示すブール値です。"AllowLocation" が false の場合、個々の要素で構成することはできません。

通常、web.config ファイルを変更すると、アプリケーションが再起動します。

アプリケーションで独自の設定を編集する必要がある場合は、設定をデータベース化するか、編集可能な設定を含むXMLファイルを作成するなど、別のアプローチを検討する必要があります。

詳細については、スタック オーバーフローの質問を参照してください。実行時に web.config appSettings を変更するにはどうすればよいですか? .

于 2013-06-24T07:22:56.967 に答える
-1

MSDN のこの記事に、探している答えがあるかもしれません: UnauthorizedAccessException when Saving AppSettings data to a Local Intranet file share

于 2013-06-24T07:17:49.500 に答える
-1

ここに書く必要はないと思いますAppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings");

を使用して設定を直接保存できますobjConfig

このコードを試してください:

private void ChanngeDefaultPassword(string password)
{
    try
    {
        System.Configuration.Configuration objConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");

        objConfig.AppSettings.Settings["DEFAULT_PASSWORD"].Value = password;
        objConfig.Save();
     }
     catch (Exception ex)
     {
     }
}
于 2013-06-24T07:26:17.170 に答える