2

既存のMVC3プロジェクトに基づいたWebロールを持つ新しいクラウドサービスプロジェクトを作成しました。AzureコンピューティングエミュレーターのWebサイトでWebの役割を実行しようとすると、ページスタイルをより少なくレンダリングする画像またはcssスタイルの使用を除いて、正常に機能します。ブラウザで直接URLを使用して、これらの不足しているリソース(cssや画像ファイルなど)にアクセスしようとすると、「内部サーバーエラー」のみが発生します。

cloudServiceプロジェクトの下のobjフォルダーを確認しましたが、すべてのビューとdllが存在しているにもかかわらず、コンピューティングエミュレーターでプロジェクトを実行するとContentフォルダー(cssと画像が存在するはずです)が空になりますが、実行するとPOPULATEDになりますクラウドに対するデプロイ。

フォーラムでの以前の調査の結果、これらのファイルに「BuildAction = Content」が含まれていること、および静的コンテンツモジュールがローカルIISにインストールされていることを確認しましたが、肯定的な結果は得られませんでした。

AzureTools1.7とVS2010を使用しています

更新: エミュレーターでWebの役割を開始しようとすると(VS2010では再生ボタンを押す)、問題に関連していると思われる2つの警告がWindowsアプリケーションイベントログで発生します(どちらの警告もIIS Expressで発生します)。

ここに警告があります(最初は元のスペイン語バージョンで、後で個人的な英語の翻訳)

"EldirectorioespecificadoparaalmacenarencachéelcontenidocomprimidoC:\ Users \ dgarcia \ AppData \ Local \ dftmp \ Resources \ c122a014-7804-49ec-b59f-c9f23c924050 \ temp \ temp \ RoleTemp \ iisexpress \ IIS Temporary Compressed Files \ d42ecaeb -eabb-4dd2-89b8-aecd01f36ba3noesválido。Lacompresiónestáticaseestádeshabilitando。」

「圧縮されたコンテンツをキャッシュするために指定されたディレクトリ[非常に長い一時パス]が無効です。静的圧縮が無効になっています。」

(2秒後に2番目の警告が発生します)

"ErrordelmóduloFailedRequestTracingalcreareldirectorio'\?\ C:\ Users \ dgarcia \ AppData \ Local \ dftmp \ Resources \ c122a014-7804-49ec-b59f-c9f23c924050 \ directory \ DiagnosticStore \ FailedReqLogFiles \ Web \ deployment17(8) .CloudService.BRAINVT.Web_IN_0_Web\'。

「モジュールFailedRequestTracing作成ディレクトリ[奇妙な非常に長いパス]でエラーが発生しました。状況が修正されるまでログは生成されません。過去5分間に少なくとも1回問題が発生しました。データはエラー(?)です。」

UPDATE2: httpCompressionが根本的な問題であると想定して、この設定のディレクトリ属性を変更して、Everyoneに対してオープンなアクセス許可を持つc:\ tempのようなパスを指すようにしました(残念ながら、これはプロジェクトのweb.configファイルでは実行できないため実行する必要があります) IIS Expressでは、de appcmdコマンドラインツールを使用して)、Azure Compute Emulatorが各WebRoleに対して独自のapplicationHost.configファイルを生成し、IIS Expressのグローバル構成をオーバーライドして、変更した設定をオーバーライドすることを確認します。

4

3 に答える 3

2

ついに解決しました。この種の問題を解決するための試行錯誤の方法に満足しておらず、根本的な原因を理解したいと思いますが、これを機能させるプロセスは次のとおりです。

  1. 私のソリューションでクラウドサービスプロジェクトを削除して再作成しました(これに何か関係があるかどうかはわかりません)

  2. MVCプロジェクト(Webロールのベースとなるプロジェクト)の開発サーバーをIISExpressからBuiltin'Cassini'に変更しました。これにより、エミュレーターの静的コンテンツが取り戻されました(hurra!)

  3. その後、プロジェクトのすべての部分をテストするためにIIS Express機能が必要であることを知って、IISExpressに戻って…OMG!静的コンテンツは残ります。

これは2台の異なるマシンで機能しました。言ったように、私は根本的な原因を見つけるのが最善ですが、現時点ではすべてが正常に機能しています。

于 2012-06-29T06:58:04.273 に答える
2

ファイルが見つからない場合は、内部サーバーエラーではなく、ファイルが見つかりませんエラーが発生するはずです。また、クラウドにデプロイするときにパッケージ内のファイルが表示される場合、これはVS設定に問題がないことを意味します。

イベントログ(アプリケーションログ)をご覧になることをお勧めします。これを行うには、診断を構成するか、リモートデスクトップを介して接続します。他に何かが起こっている場合は、問題を説明するASP.NET警告がイベントログに表示されます。

于 2012-06-25T09:48:28.177 に答える
0

ローカルIIS設定の問題のようです-http://technet.microsoft.com/en-us/library/cc735199( v=ws.10 ).aspxで提案を試して、圧縮設定を変更して再試行してください。

于 2012-06-25T11:33:44.670 に答える