1

~/App_Start/RouteConfig ファイルに登録されているいくつかのカスタム ルートを持つ ASP.Net MVC 4 Web サイトを作成しました。

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Empty",
            url: "",
            defaults: new { controller = "Home", action = "Index", id = 0 }
        );

        routes.MapRoute(
            name: "Session",
            url: "{id}",
            defaults: new { controller = "Home", action = "Index" }
        );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

このサイトは、Azure の外でもうまく機能しており、Azure エミュレーターでも機能しますが、Azure に移動すると、ルートがないように動作します。たとえば、Web サイトのルートに移動しようとすると、次のようなエラーが表示されます。

403 - Forbidden: Access is denied.

You do not have permission to view this directory or page using the credentials that you supplied.

これにより、ルートが機能していないだけだと思ったので、http://myapp.cloudapp.net/1234のような別のページに移動しようとしました(1234 をホーム コントローラーのインデックス アクションに送信する必要があります。しかし、そのアクションは私に404 エラー。

新しい ASP.Net MVC 4 Azure プロジェクトに対して構成を確認しましたが、同じように見えます。私もこれを読んで、いくつかの指針を示しましたが、最終的には役に立ちませんでした。

これをトラブルシューティングする方法について何かアドバイスはありますか?

アップデート

これは WebRole プロジェクトであり、.Net 4.0 を使用しています (既に 4.5 からダウンコンバートしています)。

4

1 に答える 1

3

この記事http://www.sunilhaste.com/2011/04/403-forbidden-access-is-denied-error.htmlに従ってデフォルトのページを設定しようとしましたか?

  1. Web ロールを Azure にアップロードした後、アプリケーションにアクセスしようとすると、突然 "403-Forbidden, Access denied" エラーが発生します。
  2. http://xyz.cloudapp.net/Pages/Home.aspxなどの完全な URL を提供することで、ページにアクセスできます。
  3. Web サイトのルート レベルに default.aspx ページがありません。解決策:- 最初にすべきことは、system.webserver タグ内の web.config ファイルに以下のタグを追加したかどうかを確認することです。

   <add value="Pages/Home.aspx"/>

私も同様の問題を抱えていましたが、役割を2008 R2に設定することで修正されました。リンクされた記事へのコメントの誰かが言う

OS CONFIGURATION を MS SERVER 2008 SP2 から MS SERVER 2008 R2 に変更します。

次の Asp.net と Azure も参照してください- Web アプリケーションが表示されなくなりました。<modules runAllManagedModulesForAllRequests="true" />

また、MVC4 ファイルが Azure にデプロイされていることを確認していると思います。RDP をマシンに接続し、イベント ログなどを確認しましたか?

于 2012-10-14T13:10:17.420 に答える