0

私はこれをフォローしようとしていますhttp://msdn.microsoft.com/en-us/library/cc668202(v=vs.90).aspx

これをweb.configに追加して作成しました:

<modules>
      <remove name="ScriptModule"/>
      <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <remove name="UrlRoutingModule" />
      <add name="UrlRoutingModule"
           type="System.Web.Routing.UrlRoutingModule, 
               System.Web.Routing, 
               Version=3.5.0.0, 
               Culture=neutral, 
               PublicKeyToken=31BF3856AD364E35"/>
    </modules>

そして、これを Global.asax に追加しました。

protected void Application_Start(Object sender, EventArgs e)
        {
            SplendidInit.InitApp();
            RegisterRoutes(RouteTable.Routes);
        }

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.Add("ShortUrl_Attachment_NoLogin", new Route
            (
               "a",
               new CustomRouteHandler("~/FACTS/Attachments/Attachment_NoLogin.aspx")
            ));
        }

        public class CustomRouteHandler : IRouteHandler
        {
            public CustomRouteHandler(string virtualPath)
            {
                this.VirtualPath = virtualPath;
            }

            public string VirtualPath { get; private set; }

            public IHttpHandler GetHttpHandler(RequestContext
                  requestContext)
            {
                var page = BuildManager.CreateInstanceFromVirtualPath
                     (VirtualPath, typeof(Page)) as IHttpHandler;
                return page;
            }
        }

ナビゲートする/FACTS/Attachments/Attachment_NoLogin.aspxと機能します。しかし、カスタム ルートに移動しようとする/aと、「HTTP エラー 404.0 - 見つかりません」と表示されます。

カスタム ルートを機能させるにはどうすればよいですか?

ご協力ありがとうございました。

編集:

私は IIS 7.5 で .NET 3.5 を使用しています。

4

1 に答える 1

0

私が使用した解決策は、IIS Rewrite モジュールをダウンロードしてインストールすることでした。とても簡単で、とてもクールでした:)

http://www.iis.net/downloads/microsoft/url-rewrite

于 2013-03-11T14:26:42.433 に答える