2

プロジェクト用に継続的配置ビルド (Azure TFS サービス (別名 visualstudio.com) を使用) をセットアップしましたが、正しく動作しません。ビルドは問題ないようで、デプロイが開始されますが、worker ロールは常に継続的にリサイクルされます。管理ポータルを介してデプロイされた Visual Studio の手動ビルドは、問題なく動作します。ワーカー VM の 1 つにリモート接続して何が起こっているのかを確認したところ、イベント ログに次のようなものが見つかりました。

An unhandled exception occurred. Type: Autofac.Core.DependencyResolutionException Process ID: 2488
Process Name: WaWorkerHost
Thread ID: 13
AppDomain Unhandled Exception for role MyProject.Worker_IN_1
Exception: An exception was thrown while invoking the constructor 'Void .ctor(Microsoft.WindowsAzure.CloudStorageAccount)' on type 'TemplateRepository'.
  at MyProject.Worker.WorkerRole.Run() in c:\a\src\MyProject\Dev\MyProject.Worker\WorkerRole.cs:line 383
  at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.StartRoleInternal()
  at Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.<startrole>b__1()
  at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
  at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
  at System.Threading.ThreadHelper.ThreadStart()

Inner Exception: The type initializer for 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' threw an exception.
  at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetConfigurationSettingValue(String configurationSettingName)
  at MyProject.Worker.Core.Repositories.TemplateRepository..ctor(CloudStorageAccount account) in c:\a\src\MyProject\Dev\MyProject.Worker.Core\Repositories\TemplateRepository.cs:line 24
  at lambda_method(Closure , Object[] )
  at Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()

Inner Exception: Could not load file or assembly 'msshrtmi, Version=1.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT:
 0x80131040)
  at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeEnvironment()
  at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment..cctor()

何らかの理由で、TFS ビルド サーバーで実行されたビルドは、msshrtmi のバージョン 1.7 ではなく、バージョン 1.8 への誤った参照で終わるようです (これは、私のすべてのプロジェクトが実際に参照しているものです)。msshrtmi の明示的な参照を追加しようとしましたが、ここにある提案も試しました (http://tomkrueger.wordpress.com/2010/07/27/azure-deployment-issue-after-upgrading-to-visual-studio- 2010-and-net-4-0/) で、どちらも機能していないようでした。

他の提案はありますか?

更新: MSDN フォーラムの私のクロスポストへのリンクは次のとおりです。

4

1 に答える 1

1

Azure アセンブリの 1.8 バージョンを参照できますか?

Microsoft.WindowsAzure.ServiceRuntime の 1.8 バージョンは msshrtmi.dll のバージョン 1.8 を参照し、対象の Azure 環境に dll がない場合、このメッセージで失敗します。

于 2012-12-29T01:01:12.077 に答える