3

編集:私はそれを理解しました。ほぼ:)この問題を修正しましたが、別の問題を見つけました。ここで解決策を文書化します。


AzureにデプロイしようとしているMVCWebロールがあります。開始>初期化からバウンスし続けます。私は自分の調査を行い、これの2つの主な原因を見つけました。

  1. 私が使用しているアセンブリの1つがCopy Local = True設定されていません
  2. 診断接続文字列が間違っています。

診断接続をトリプルチェックしましたが、問題ありません。ワーカーロールでまったく同じ接続文字列を使用できますが、正常に開始されるため、問題は上記の#1に関連していると思います。

これは、紺碧の展開プロジェクトを追加した標準のMVCプロジェクトだったので、「AzureWebロールプロジェクト」が自動的に実行する何かが欠けていると思います。プロジェクトのコンテキストメニューから[デプロイ可能なアセンブリを追加]オプションを既に選択しているので、MVCビットを設定する必要があります。

これが私の参考文献のリストです。強調表示されている項目にはがありCopy Local = trueます。私は1つを逃していますか?これをデプロイするには、他に何をする必要がありますか?それを理解するのに役立つ診断ツールはありますか?

更新:
私はより多くの情報を見つけたときに大好きです:)

それで、サーバーにリモート接続できる状態でようやくそれをキャッチすることができました。IISを開いて、あるべきものがすべてそこにあるのを見ました。ローカルでサイトにアクセスしようとしましたが、このエラーが発生します。アセンブリは私のデプロイに含まれているので、それが見つからないことは意味がありません。パッケージ化されたものとは異なるバージョンをロードしようとしているようです。

ファイルまたはアセンブリ'System.Web.WebPages'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0x80131040)

だから私のエラー(の少なくとも1つ)があります.....しかしなぜですか?このサイトはIISExpressで正常に実行され、開発ファブリックでも正常に実行されます。私はここで初心者のように感じます。私は何を間違えましたか?

ここに画像の説明を入力してください

4

5 に答える 5

2

System.WebPagesのV2への参照がありましたが、bin_dependenciesにはV1が含まれていました。これがどのように起こったかはわかりませんが、すべてが正しいバージョンにあることを確認してください。

于 2012-04-20T14:19:02.823 に答える
1

使用しているMVCのバージョンを教えてください。MVC 3または4を使用している場合は、CLRランタイムを新しいバージョンのアセンブリにリダイレクトしてください。たとえば、MVC 3の場合:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

新しいMVCWebロールを作成すると、これは自動的に構成されます。既存のMVCアプリケーションをWindowsAzureに移行する場合は、手動で構成する必要があります。

よろしくお願いします、

明徐。

于 2012-04-20T07:56:24.550 に答える
0

ASP.NET MVC(3)を使用する場合は、Azureにインストールする必要があります。デプロイする最も簡単な方法は、優れた機能「デプロイ可能な依存関係の追加」を使用することです。

展開可能な依存関係を追加する

このオプションは、Webアプリケーションプロジェクト(クラウドプロジェクトではなく、Webロール自体)を右クリックすると表示されます。次に、ASP.NETMVCを選択します。

ここに画像の説明を入力してください

このプロセスにより、Webアプリ_bin_deployableAssembliesにフォルダーが作成されます。そして、フレームワークはそれをどうするかを知っています。

ノート

「展開可能な依存関係の追加」は、Visual Studio2010SP1の一部です。したがって、まだSP1にアップグレードしていない場合は、アップグレードすることを強くお勧めします;)

于 2012-04-20T05:40:45.383 に答える
0

グローバルアセンブリキャッシュに存在するために提供されていると見なされるためにパッケージ化されていない、直接または間接的に参照されるアセンブリが欠落しています。同じ問題を文書化する必要があるこの回答とコメントを見てください。

于 2012-04-20T05:34:44.013 に答える
0

これが発生している問題かどうかはわかりませんが...セッション状態が有効になっている場合、web.configのデフォルトプロバイダーはSQL Expressです(2011年8月の更新に基づき、ロールテンプレートはすべてのユニバーサルプロバイダーを使用するようになりました) )。SQLExpressはWindowsAzureにインストールされていないため、Webロールの起動時に問題が発生します。プロバイダーをSQLAzureまたはキャッシュに変更する必要があります。ユニバーサルプロバイダーの更新に関するNateTottenのブログ投稿は、これにさらに光を当てています。

ここでも同様の質問に答えました...

于 2012-04-20T06:17:23.923 に答える