1

ASP .NET 2.0 Web サイトを WebRole (ASP.NET 4.0 および VS2010) に移行しています。新しい Web ロールを作成した後、すべてのファイルとフォルダーを Web サイトから WebRole に移動し、必要なすべての dll を参照しました。私は Web ロールをスタンドアロンでビルドして実行しましたが、問題なくすべて問題ありません。しかし、WindowsAzureProject をビルドして実行すると、以下のエラーが発生します。

[fabric] Role state Stopping
[fabric] Role state Stopped
[fabric] Role state Aborted
[fabric] Role state Teardown
[fabric] Role state Destroyed
[runtime] Role entrypoint could not be created:
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.Assembly.GetTypes()
   at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CreateRoleEntryPoint(RoleType roleTypeEnum)
   at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeRoleInternal(RoleType roleTypeEnum)

およびステータス「操作は取り消されました」

解決するのに数日かかりますが、何も見つかりませんでした。すべての参照 dll に対して「ローカルのコピー」を true に設定しましたが、効果もありません。spring.core と spring.aop がエラーの原因だと思ったのですが、クラッシュする場所をデバッグしてキャッチする方法がわかりません

この場合、私を助けてください。どうもありがとう、私の下手な英語でごめんなさい

4

3 に答える 3

1

注意すべきもう1つのポイントは、依存関係の依存関係が満たされ、Webロールで明示的に参照される必要があることです。つまり、ソリューションでdllまたは別のプロジェクトを参照する場合は、そのプロジェクトまたはdllの依存関係をWebロールに含める必要があります。 CopyLocalがtrueに設定されている参照。

これは、Azure Packagerが依存関係ツリーをスキャンせず、最初のレベルの参照、つまりロールの参照のみを参照するためです。したがって、ツリーのさらに下のdllが見つからず、型の読み込みの例外が発生する可能性があります。

スコットの答えは、どのdllが欠落しているかを見つけるのに役立つはずです。お役に立てば幸いです。

于 2011-06-09T23:19:10.680 に答える
1

この問題をデバッグする最も簡単な方法は、デプロイで Intelitrace を有効にして、その方法でデバッグすることです。これは、これを行う方法に関する良い投稿です。スターアップを try catch でラップした後、診断を有効にしてログに記録することもできます。ただし、Intelitrace が最善の方法です。

于 2011-05-05T05:10:39.260 に答える
0

おそらく WebRole.cs ファイルを削除しましたか?

于 2011-01-05T10:48:41.307 に答える