【发布时间】:2012-03-05 15:35:42
【问题描述】:
希望您能帮我解决以下问题。
我在 IIS7 上使用 ASP.NET MVC 3,并希望我的应用程序支持带点的用户名。
这就是我的 Global.asax 的样子:(http://localhost/{username})
routes.MapRoute(
"UserList",
"{username}",
new { controller = "Home", action = "ListAll" }
);
当我访问其他页面(例如 http://localhost/john.lee/details 等)时,应用程序可以正常工作。
但是主用户页面不起作用,我希望该应用能够像支持 http://www.facebook.com/john.lee 的 Facebook 一样工作。
我使用了下面的代码,但它根本不适合我:
<httpRuntime relaxedUrlToFileSystemMapping="true" />
我能够使用下面的代码并让应用程序接受点,但由于许多不同的原因我绝对不想使用下面的代码,请告诉我有办法解决这个问题。
<modules runAllManagedModulesForAllRequests="false" />
【问题讨论】:
-
我有同样的问题,但在 IIS 6 中。
-
我无法重现该问题。它适用于 IIS Express(因此它也适用于 IIS 7.0+)。此外,您似乎在指示
/john.lee/details形式的 url,但根据您的路由定义,您无法指定操作。它将始终使用ListAll操作。所以问题与这里的点并没有真正的关系。可能更多的是关于你的路线。 -
不,达林,你误解了我,localhost/john.lee 正在使用上述路线(ListAll),但 /john.lee/details 使用的是不同的路线,但不知何故,它有效。我认为这与 IIS 有关,通过在用户名上启用一个点,它将允许类似 localhost/default.aspx 的内容(default.aspx 是用户名,而不是根文件夹上的文件)。我真的需要想办法解决这个问题。
-
基本上通过在用户名上启用点,某人的用户名可能是 default.aspx,而另一个人的用户名可能是 john.lee,但 IIS 会因为我按下而感到困惑?
标签: asp.net asp.net-mvc-3 iis-7 url-routing global-asax