私はこの質問が何度も聞かれ、何度も答えられたことを知っていますが、昨日私のコードがプロダクションサーバーと開発マシンの両方で機能していたので、私はいくつかの本当に奇妙な状況に遭遇しましたが、今日私のサイトを実行しようとしたとき、 404で笑っていた
IISで何も変更できずに、サイトの元のページへのSEO対応URLのルーティング/書き換えでスタックしています。最初に、開発マシン(Windows Server 2008、IIS 7)で動作するUrlRewriter.NETを使用しようとしましたが、404エラーがスローされたため、ステージングサーバー(Windows Server 2003 R2、IIS 6)では動作しませんでした。それから私はUrlRewriting.NETを使おうとしましたが、これも私が覚えているのと同じことをしました。
編集:UrlReWriting.NETを使用しようとすると、Visual Studio ASP.NET開発サーバーでは機能しましたが、IISでは機能しませんでした
次に、同僚と少し検索して、URL書き換えの代わりにURLルーティングを使用するように説得したので、Global.asax内の次のコードを使用してASP.NETURLルーティングを開始しました。
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が必要なページが1つしかなく、ページ名はGallery.aspxで、PathInfo/QueryStringパラメーターは動的です。
重要:私の本番サーバーはIIS6を搭載したWINDOWSSERVER 2003であり、開発マシンはWINDOWS SERVER 2008IIS7です。