0

公式の安定版リリースにコードを変更することなく、Orchard を Azure クラウド サービス (webrole) にデプロイしています。ただし、新しくデプロイされたオーチャード クラウド サービス (webrole) に移動すると、Could not load file or assembly 'Microsoft.WindowsAzure.ServiceRuntime, Version=1.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

回避策として、Local Copy=True (つまり、ソースを変更) を有効にすると、この特定の YSOD は削除されますが、別の YSOD に置き換えられmsshrtmiます)。しかし、さらに重要なことは、ダウンロード済みのビルド済み Orchard Azure (1.7、同じ GIT src タグからビルド済み) を問題なくデプロイできることです。さらに公式ソースから。

この問題にどのように遭遇したか:

  1. GIT からソースをダウンロードします ( http://orchard.codeplex.com/SourceControl/latest、使用 しましcommit 5e0c26f73cf5た )
  2. ClickToBuildAzurePackage.cmdスクリプトを実行
  3. buildazure\Stage\ServiceConfiguration.cscfg実際の Azure ストレージ アカウント (対ローカル ストレージ) を指すように接続文字列を挿入するように編集します。
  4. buildazure\Stagewindowsazure.com ポータルを使用して、両方のファイルを Azure にデプロイします。
  5. サイトに移動します (例: http://OrchardTest.cloudapp.net )
  6. イエロー スクリーン オブ デスをお楽しみください :(

ローカル ビルド システム:

  • Windows 8、x64
  • VS2012.3
  • Azure SDK 1.7、1.8、2.0

質問:

Azure へのデプロイに成功した人はいますか? この問題を解決する方法はありますか?

4

1 に答える 1

2

Azure サービス ランタイムで CopyLocal True を設定する必要はありません。これは、Cloud Services プロジェクト (この場合は Orchard.Azure.CloudService) によって定義されたパッケージに自動的に含まれます。そして実際には、Azure パッケージがビルドされたバージョンとは異なるバージョンのサービス ランタイムがビンに含まれている場合、CopyLocal True が問題を引き起こす可能性があると想像できました。

Orchard Azure は Azure 2.0 ライブラリを使用します。Orchard.Azure.CloudService プロジェクトをコンパイルしてパッケージを作成できるため、2.0 SDK がインストールされていることがわかります。クラウド サービス プロジェクトには、Azure ツールのバージョンごとに異なるプロジェクト GUID があるため、v2.0 SDK がないと、不明なプロジェクト タイプになります。ただし、Orchard Web サイトが ServiceRuntime v1.7 を取得しているため、v2.0 で識別される必要があるため、ローカル環境に何か問題があるようです。

Orchard.Azure.sln を開くときは、Orchard.Azure.Web プロジェクト内の Microsoft.WindowsAzure.ServiceRuntime 参照のプロパティを確認してください。Visual Studio がその参照にリストするバージョンは何ですか? 2.0.0 である必要があります。そうでない場合は、2.0 ライブラリを再インストールすることをお勧めします。

定義した展開手順は、YSOD がなくても問題なく機能します。これを書く直前に試してみました。問題を再現しませんでした。

于 2013-08-15T16:24:05.943 に答える