背景:
Visual Studio 2010 の配置ツールを使用してい
ます。プロジェクトを右クリックし、[パッケージ/公開設定] を選択しました。すべての設定をそこに入れます...
次に、「Web デプロイ」を使用して、リモート エージェント サービスを実行しているリモート サーバーにファイルを転送していますが、これは正常に機能しています。私が Web.Release.config に持っている変換はその役割を果たし、サーバーは私が手動で作成したデータベースにアクセスできます。
問題:
私の次のステップは、データベースの展開も機能させることでした。[Package / Publish SQL] タブに移動し、宛先データベースの接続文字列を入力しました。
(Data Source=MyDBServer;Initial Catalog=Database2;User ID=User;Password=pass)
このデータベースは空で、インポートを受け入れる準備ができています。
ソース データベースの接続文字列も入力します。これは同じサーバー上にあります。
(Data Source=MyDBServer;Initial Catalog=Database;User ID=User;Password=pass)
データベース スクリプト オプションは [スキーマとデータ] に設定され (これを変更しても違いはありません)、データベース スクリプトは [自動生成されたスキーマとデータ] に設定されます。
これを今デプロイすると、次のエラーが表示されます。
エラー 4 Web 配置タスクが失敗しました。((09/06/2010 16:41:51) リモート コンピューターで要求が処理されたときにエラーが発生しました。)
(09/06/2010 16:41:51) リモート コンピューターで要求が処理されたときにエラーが発生しました。現時点では、エントリ タイプ「不明」は想定されていませんでした。シリアル化ストリームが破損している可能性があります。
追加情報:
問題なくパッケージを作成できます。zip の内容を確認したところ、SQL が正常に生成されていることがわかります (データベースへの接続に問題はありません)。次に、この SQL をコピーして、新しいデータベースで新しいクエリとして実行すると、テーブルとデータが正常に作成されます。
これがどこでうまくいかないのか、私はエラーをグーグルで検索しましたが、インターネット全体にエントリがありません。誰にもアイデアはありますか?
補遺:
何が起こっているのかをさらに理解するために、パッケージをサーバーに送信し、IIS を使用してインポートしました。SQL Server 管理オブジェクトが必要だと教えてくれました。だから私はそれをインストールしました。次の試行では、ユーザーにデータベースを作成する権限がないことがわかりました。これは問題であるに違いないと思いました。:許可されたアクセス - 再実行。合格した!だから私はすべてのテーブルを削除し、VS2010 に戻って公開をクリックすると、同じエラーが発生します。:(