0

dbのバックアップを作成する次のコードスニペットがあります。

try
{
  string connStr = "<valid connection string>";

  using (SqlConnection conn = new SqlConnection(connStr))
  {
    conn.Open();

    string sqlStmt = String.Format("BACKUP DATABASE InventoryDB TO DISK='{0}'", 
                                      DBBackupSaveFileDialog.FileName);

    using (SqlCommand bu2 = new SqlCommand(sqlStmt, conn))
    {
      bu2.ExecuteNonQuery();
    }
...

問題は、開発者のPCで正常に動作することですが、別のマシンで試してみると、このエラーが発生します

バックアップデバイス'C:\ User \ Saleh \ Documents\12.bak'を開くことができません。オペレーティングシステムエラー5(このエラーのテキストを取得できませんでした。理由:15105)。

4

1 に答える 1

2

SQLServerサービスアカウントに次の書き込みアクセス権があることを確認する必要がありますC:\Users\Saleh\

まず、SQLServerが実行されているアカウントを確認します。[コントロールパネル]>[管理ツール]>[サービス]で、関連するSQL Serverサービスを右クリックし、[プロパティ]をクリックして、[ログオン]タブに表示されるアカウントを確認します。次に、Windowsエクスプローラーに移動し、フォルダーを右クリックして[プロパティ]をクリックします。[セキュリティ]タブで、このユーザーアカウントをリストに追加し、書き込みアクセス権があることを確認します。これに関してさらに問題がある場合は、プログラミングの問題ではなく、Windows /アクセス許可の問題になりつつあるため、おそらくsuperuser.comに質問する必要があります。

さらに良いことに、ユーザーフォルダーへのバックアップの実行を停止します。SQLServerが既に書き込み権限を持っているSQLServerのバックアップフォルダーを使用します。後で移動する必要がある場合は、別途移動してください。

于 2012-08-30T17:35:26.073 に答える