ASP.NET MVCアプリケーションがドメインのSubProjectとして公開されている場合のルートの使用方法

StackOverflow https://stackoverflow.com/questions/802253

  •  03-07-2019
  •  | 
  •  

質問

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

Testing:     http://localhost:xxx/
Production:  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
役に立ちましたか?

解決

私にとっては、iis 6での公開に関連しているようです。ここについて。

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

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

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top