2012-03-05 15 views
2

Windows AzureでホストされるASP.NET MVC Webアプリケーションを開発しています。私たちは、開発中に何ら問題なくアプリケーションを数回配備しました。プロセスがどのようにスムーズに行われたかは、実際は驚くべきことでした。その後、ベータテスト用にアプリケーションをデプロイすると、サイトのベースURLに移動しようとするたびに403アクセス拒否エラーが発生しました。その後、サイトのさまざまなコントローラとアクションのいずれかに移動しようとすると、404リソースが見つかりませんでした。Azure ASP.NET MVC Web.Configデプロイメント

他の奇妙なことは、デフォルトのアカウント/ログインではなく、認証リダイレクトページを/ Access/SignInに設定していることです。開発マシンではすべてうまく動作し、/ Access/SignInにリダイレクトされましたが、Azureに公開すると、/ Account/Loginにリダイレクトされていました。これにより、web.configファイルに問題があると思われました。

Azureデプロイメントでリモートデスクトップを有効にし、web.configファイルを調べて、ほとんど完全に空であることを確認してください。その中の唯一の設定はmachineKeyでした。私たちは開発マシンの1つからWeb Azure仮想マシンインスタンスに手動でweb.configをコピーし、そこから作業が開始されました。

デプロイメントによってweb.configファイルが消去されるのは何ですか?また、アップデートを展開するたびに手動でweb.configファイルを更新することができないため、これを防ぐ方法を教えてください。

+0

cspkgを構築するときにコンフィグレーション変換を実行していますか? –

+0

私はそれが可能であったことさえ知りませんでした!誤って何かをしていない限り、私は変形が起きているわけではありません。確認するには、変換が定義されていない場合、web.configをAzureにデプロイする必要がありますか? –

+0

あなたは正しいです。 web.configはそのままコピーする必要があります。 /bin/ /app.publishフォルダに移動すると、Azureにアップロードされた.cspkgファイルが見つかります。ファイルの内容を表示するには、.zip拡張子を付けます。 cspkgでは、Azureプロジェクトで参照される各プロジェクトには独自のzipファイルがあります(プロジェクトzipにも.zip拡張子を追加する必要があります)。 Azureにアップロードすることなく、Azureパッケージの内容を見ることができます。これは、これらの問題を解決するのに役立ちます。 –

答えて

2

.cspkgファイルの内容を調べることで、この種の問題を解決することがよくあります。これにより、Azureパッケージのアップロードと初期化を待つことを避けることができます。ここで.cspkgの内容を表示する手順は、次のとおりです

  1. 移動/bin//app.publishフォルダ
  2. に.cspkg.zipする.cspkgファイルの名前を変更します。
  3. .cspkg.zipを開きます。 Azureプロジェクトで参照されるプロジェクトごとに.cssxファイル(実際はzipファイル)があります。
  4. 検査する.cssxファイルを抽出し、名前を.cssx.zipに変更します。
  5. .cssx.zipを開いて見てください。 WorkerRolesについては、approotフォルダをチェックしてください。 WebRolesについては、sitesrootフォルダをチェックしてください。
関連する問題