如何在多个环境中使用URL路由?

时间:2011-04-13 20:46:36

标签: c# asp.net .net-4.0 webforms url-routing

我有三种不同的环境,我需要能够使用url路由:

  1. 调试
  2. 演示
  3. 这三个主页是:

    1. http://localhost:48060/Login.aspx
    2. http://192.168.0.145/Live/Login.aspx
    3. http://www.website.com/Demo/Login.aspx
    4. Live和Demo与Web应用程序位于同一默认网站中(实时仅在内部公开,而演示在外部公开)。

      我想将这些映射到

      1. http://localhost:48060/login
      2. http://192.168.0.145/Live/login
      3. http://www.website.com/Demo/login
      4. 如果没有将每个路径映射重复三次,建议的方法是什么?

        谢谢!

        我如何为Debug env添加路由的示例:

        routes.MapPageRoute("Login", "login", "~/Views/Login.aspx");
        

        更多信息:

        当我尝试添加

         routes.MapPageRoute("Login", "login", "~/Live/Views/Login.aspx");
         routes.MapPageRoute("Login", "login", "~/Demo/Views/Login.aspx");
        

        路线不起作用。我在尝试访问时遇到了404错误http://192.168.0.145/Live/login不确定问题是什么。

        我正在将IIS 7.1用于已发布的版本以及Win XP pro用于调试的任何内容。

2 个答案:

答案 0 :(得分:1)

您的“环境”似乎是应用程序根目录的子目录。因为三个URL中的第一个不包含第二个值(例如“http:// localhost:48060 / debug / login”),所以为这三个路径定义一个路由并不容易。

如果这些辅助环境被定义为他们自己的应用程序,那么您应该能够在每个环境中使用相同的路由,但我们需要更多详细信息来帮助您进一步。

请更好地描述您的情况,我会更新我的答案并提供更多信息。

答案 1 :(得分:1)

原来是m $忘记提及的配置问题。通过修改我的web.config来使用runAllManagedModulesForAllRequests

来实现它
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">