6

背景:
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 に戻って公開をクリックすると、同じエラーが発生します。:(

4

1 に答える 1

3

並べた!

ハンセルマンのビデオに戻ったとき、私はまったくアイデアがありませんでした。彼は、Web 配置エージェントがアクセス許可を持つことができると述べました。入ってみると、プロパティにログオンというタブがありました。

適切なレベルのアクセス権を持つアカウントの詳細を入力し、[OK] をクリックしました。

次に、要求に応じてサービスを再起動して、変更を有効にしました。

次に、VS 2010 に戻り、[Publish Web] をクリックしました。

「公開に成功しました」という言葉が目に浮かびます。データベースをチェックすると、そこにテーブルがあります。優秀な!

少し興奮しすぎてオフィスを怖がらせたと思います。この問題が発生し、この解決策で解決した場合は、「はい、はい、入ってください!」と叫びたいという誘惑に負けないようにしてください。狂ったように笑ったり、人々はあなたが私のように変だと思うでしょう。

于 2010-06-10T09:16:19.343 に答える