3

ローカルでデバッグおよびテストしたときに完全に機能するWebアプリがあります。ただし、サイトを本番サーバーに公開すると、ルーティングが混乱します。これは、本番サーバーでサブプロジェクトとして実行されるためです。

テスト:http:// localhost:xxx /
制作:http:// remotehost / webapp /

ルーティングをどのように設定する必要がありますか?

これは私の現在のルーティング設定です(ほとんどがデフォルトです)。http:// remotehost / webapp /にアクセスすると、サーバーにデフォルトのコントローラーアクションが表示されます。しかし、コントローラーをハードコーディングすると(http:// remotehost / webapp /Project/それは機能しません...

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}")

    routes.MapRoute("ProjectsByCategory", "Project/Category/{id}", _
                    New With {.controller = "Project", .action = "ListByCategory", .id = ""}, _
                    New With {.id = "^[0-9]+"})


    routes.MapRoute( _
        "Default", _
        "{controller}/{action}/{id}", _
        New With {.controller = "Project", .action = "Index", .id = ""} _
    )

End Sub
4

2 に答える 2

3

私には、それはiis6での公開に関連しているように思えます。それについての記事がここにあります。

私の場合、「ワイルドカードアプリケーションマップ」を追加することで同様の問題が解決されました。

  • IISで、右クリックして、問題の仮想ディレクトリの[プロパティ]を選択します
  • [仮想ディレクトリ]タブを選択します
  • 構成を選択します
  • [挿入]をクリックします
  • aspnet-isapi.dllへのパスを入力します(通常はc:\ windows \ microsoft.net \ framework \ v2.0.50727 \ aspnet_isapi.dll)。
于 2009-04-29T20:16:18.193 に答える
0

ちなみに、ルーティングはアプリケーションレベルで機能しているようです。ドメイン名以上のディレクトリ名を気にする必要はありません。

于 2009-05-03T14:04:13.827 に答える