4

次のエラーが表示されます。

リサイクル中 (役割開始待ち…サイト展開中 [2012-12-17T05:30:10Z])

実行中の 1 つ以上のロール インスタンスが異常です。1 インスタンス: 1 不健康

私は実際に自分の Web アプリケーションをクラウド アプリケーションに変換しようとしていました。

これが私がしたことです:

ソリューションにクラウド プロジェクトを追加し、Web アプリにリンクする Web ロールを追加しました SQL Azure データベースを作成し、構造全体とデータをデータベースにコピーしました Webconfig に接続文字列を挿入して実行しようとしましたエミュレーションでは、これは正常に機能し、クラウド サービスを作成してデプロイを試み、ビルダーを実行してパッケージを作成し、パッケージを「ステージング」モードでアップロードしました。ここでエラーが発生しました。

空のクラウド アプリを作成し、デフォルトの Webrole を追加して、これをクラウドにロードしようとしましたが、これはうまくいきました。だから私は考えました、私のウェブロールの設定に何か問題があるのか​​もしれません。両方の違いを確認したところ、両方のソリューションで診断が有効になっていることに気付きましたが、自分のソリューションではストレージ アカウントが空だったので、ここに「UseDevelopmentStorage=true」を挿入しました。これは何も変わりませんでした。「packages.config」にも違いが見られました

デフォルトの役割は次のとおりです。

<package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.7.0.0" targetFramework="net40" />
  <package id="System.Web.Providers" version="1.1" targetFramework="net40" />
  <package id="System.Web.Providers.Core" version="1.0" targetFramework="net40" />
  <package id="WindowsAzure.Storage" version="1.7.0.0" targetFramework="net40" />

私の持っていた:

    <package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.7.0.0" targetFramework="net35" />
  <package id="WindowsAzure.Storage" version="1.7.0.0" targetFramework="net35" />

これを変更してアップロードしようとしましたが、何もしませんでした

Worker ロールを使用していません。実行中のインスタンスは 1 つだけです (デフォルトと同じ)。

私のアプリケーションは、global.asax でいくつかの認証を使用して、User.Identity.Name から読み取り、データベース内のユーザーと比較しようとします (このユーザーは sql azure db に挿入されます)。最初はこれが原因かと思ったのですが、このコードをコメントアウトしてもクラウド上でアプリが動きません。

VM のサイズが小さい、信頼レベル = 完全な信頼

また、リモート アクセス パラメータが設定されている設定にもいくつかの違いが見られました。問題を除外するために、これらすべてを削除しようとしました

「copy local is true」への設定参照について何か読んだことがありますが、これが違いを生むかどうかはわかりません。

もう何をすべきか本当にわからないので、アイデアはありません

編集:

すべての参照を「copy local is true」に変更し、診断を無効にして、問題がないことを確認しました。

しかし、今私はエラーが発生します:

<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

面白いことに、私の webconfig では、これは既に設定されています...そして、1 つの webconfig しか見つかりません。何が間違っているのかよくわかりません

4

2 に答える 2

6

「リサイクルを続ける」とは、ほとんどの場合、アプリケーションの開始時に何らかの例外が発生したことを意味します。診断を構成して開始する前に例外が発生した可能性があるため、DiagnosticsMontorを介してエラーや例外を確認できない場合があります。

展開時にIntelliTraceオプションを有効にすることをお勧めします。Visual Studioを使用している場合は、非常に簡単に実行できます。次に、Visual Studioを介してIntelliTraceの結果を取得し、発生した例外を特定できます。コピーローカル=trueを設定する必要がある紺碧で見落とされているいくつかの参照があることを強く考えました。ただし、それらを見つけるにはIntelliTraceが必要です。

于 2012-12-18T02:29:03.313 に答える