我知道这个问题已经被问了很多次,也被回答了很多次,但是我遇到了一些非常奇怪的情况,因为昨天我的代码在我的生产服务器和开发机器上都可以工作,但是当我今天尝试运行我的网站时,它用它的 404 嘲笑我
我被困在我网站原始页面的路由/重写 SEO 友好 URL 上,无法在 IIS 上进行任何更改。首先,我尝试使用 UrlRewriter.NET,它可以在我的开发机器(Windows Server 2008、IIS 7)上运行,但不能在临时服务器(Windows Server 2003 R2、IIS 6)上运行,因为它会引发 404 错误。然后我尝试使用 UrlRewriting.NET,它也和我记得的一样。
编辑:当我尝试使用 UrlReWriting.NET 时,他们在我的 Visual Studio ASP.NET 开发服务器上工作,但不在 IIS 上
然后我的一位同事和一些搜索说服我使用 Url Routing 而不是 URL ReWriting,所以我在 Global.asax 中使用以下代码进入 ASP.NET Url Routing
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("GalleryCategory", "Gallery/", "~/Gallery.aspx");
routes.MapPageRoute("Gallery", "Gallery/{*image}", "~/Gallery.aspx");
}
是的,我也在 web.config 中尝试了以下解决方案,但没有用
<modules runAllManagedModulesForAllRequests="true">
<remove name="UrlRoutingModule"/>
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
但他们也让我在所有这些 404 中无处可去。
PS。我的网站上只有一个页面需要有 SEO 友好的 URL,页面名称是 Gallery.aspx,PathInfo/QueryString 参数是动态的。
重要提示:我的生产服务器是带有 IIS 6 的 WINDOWS SERVER 2003,而我的开发机器是 WINDOWS SERVER 2008 IIS 7。