6

私のアプリケーションでは、MS Sql データベースに接続して使用Microsoft.Data.ConnectionUI しています。私のアプリケーションは私のコンピューターで動作します。このアプリケーションを別のコンピューターで実行すると、接続ダイアログを開くと、次のエラーが表示されます。 ここに画像の説明を入力

これは私のコードです:

    try
    {
        connectionString = ShowDialogConnection();

        SqlConnection connect = new SqlConnection(connectionString);
        connect.Open();
        backgroundWorker1.RunWorkerAsync();


    }
    catch (Exception exc)
    {
        MessageBox.Show(exc.ToString());
    }

string ShowDialogConnection()
        {
            string conn = "";
            DataConnectionDialog dlg = new DataConnectionDialog();
            DataSource.AddStandardDataSources(dlg);
            dlg.SelectedDataSource = DataSource.SqlDataSource;
            dlg.SelectedDataProvider = DataProvider.SqlDataProvider;
            if (ConfigurationManager.ConnectionStrings["ConStr"] != null)
            {
                dlg.ConnectionString = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
            }
            if (DataConnectionDialog.Show(dlg) == DialogResult.OK)
            {
                if (dlg.ConnectionString != null && dlg.ConnectionString != "")
                {
                    conn = dlg.ConnectionString;
                    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                    ConnectionStringsSection csSection = config.ConnectionStrings;
                    csSection.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
                    csSection.SectionInformation.ForceSave = true;
                    ConnectionStringSettings csSettings = new ConnectionStringSettings("ConStr", dlg.ConnectionString, "System.Data.SqlClient");
                    if (csSection.ConnectionStrings["ConStr"] != null)
                        csSection.ConnectionStrings.Remove("ConStr");
                    csSection.ConnectionStrings.Add(csSettings);
                    config.Save(ConfigurationSaveMode.Modified);
                }
            }
            return conn;
        }

これで何をする必要がありますか?

4

2 に答える 2

2

はい、私の頭に浮かぶのはencryption、Web.Config で<connectionStrings>セクションを有効にしたことです。このタイプの問題は、暗号化が実行されていないマシンにアプリケーションをデプロイした場合に発生します。暗号化では、開発マシンでは不足しているマシン レベルのキーが使用されます。次のオプションが頭に浮かびます

  1. 元のマシンで暗号化を削除して、アプリケーションを実行することができます
  2. または、暗号化中に元のマシンで使用された RSA キー コンテナーをエクスポートし、その特定のキー コンテナーを新しいマシンにインポートすることもできます。
于 2013-04-24T13:44:22.230 に答える