1

現在、SQL Azure に対して開発を行っており、マスターを必要とするデータベース操作を自動化するために、ワーカー ロールを SQL Azure のマスター データベースにポイントしようとしました (失敗しました)。

残念ながら、これはうまくいかないようです。

ちょっとした背景: 「他の Windows Azure サービスにこのサーバーへのアクセスを許可する」が有効になっており、これを有効にするようにファイアウォール ルールが設定されています。

これの鍵を握るファイアウォール ルールが欠落している可能性があると思われます。私たちの worker ロールは、現時点ではマスターに対してではなく、他の SQL azure データベースに対して機能します...

誰かが私を正しい方向に向けることができれば、私は感謝しています!

乾杯、イアーゴ

4

1 に答える 1

2

マスター データベースの問題は、厄介な問題であることが判明しました。実際の問題は、System.Data.SqlClient オブジェクトと Microsoft.SqlServer.Management オブジェクトを使用して、マスターに対して SQL バッチ スクリプトを実行していたことです (コードは以下のスタイルです)。

var serverConnection = new ServerConnection(sqlConnection);
var server = new Server(serverConnection);
server.ConnectionContext.ExecuteNonQuery(sql);

壁に頭をぶつけた後、問題は、これらのライブラリを使用するために必要な dll が Azure で機能しないことであることが判明しました (依存関係の欠落に関するエラーが発生し続けました)。

最終的に、これに対する私たちの解決策は、バッチ スクリプトをいくつかのサブスクリプトに分割し (基本的に、GO ステートメントがあった場所で部分に分割します)、標準の ADO.NET オブジェクトを使用して実行することでした。これは、より優れた、より汎用性の高いソリューションであることが判明したため、最終的には問題なく機能しました。

于 2011-11-20T18:58:40.410 に答える