5

VisualStudioを使用して公開しようとしているCLRプロジェクトがあります。プロジェクトをSQLデータツールプロジェクトに変更する必要がありましたが、現在は公開されていません。試行するたびに、タイムアウトエラーが発生します。ステップバイステップで実行すると、このコード行がサーバーでハングしていることがわかります。

IF EXISTS (
  SELECT 1
  FROM [master].[dbo].[sysdatabases]
  WHERE  [name] = N'fwDrawings')
BEGIN
  ALTER DATABASE [fwDrawings]
  SET READ_COMMITTED_SNAPSHOT OFF;
END

基本的に、これを公開しようとすると、サーバーを強制的にシングルユーザーモードにしようとしていることがわかります。これは、本番サーバーではなく、ステージングサーバーに対してのみですが、これは依然として問題です。CLRの機能をテストしている間、CLRを更新するたびに、サーバーから全員を追い出し、シングルユーザーモードに切り替えようとすることはできません。そして、本番環境に移行するためのメンテナンスサイクルやダウンタイムを待ちたくありません。これを回避する方法はありますか?

4

2 に答える 2

2

おそらくREAD_COMMITTED_SNAPSHOT、データベースに対して有効になっています。

この場合、データベース プロジェクトの設定を一致するように変更する必要があります。プロジェクトの [データベース設定] の [操作] タブで、[コミットされたスナップショットの読み取り] トランザクション分離を確認します。

私にとっては、これにより公開のタイムアウトが防止されました。つまり、正常に公開できるようになりました。

于 2013-08-13T09:48:43.727 に答える
1

使用中のサーバーにデプロイするより安全な方法として、代わりにスキーマ比較を使用してみてください。

于 2012-10-18T19:37:58.220 に答える