Модуль перезаписи URL не работает на классическом конвейере в IIS 7.5 - PullRequest
2 голосов
/ 25 октября 2011

Я написал пользовательский http-модуль для перезаписи URL, который отлично работает в Интегрированном управляемом пуле приложений трубопроводов.

но когда я переключаю его на Классический, он перестает работать.

protected virtual void BaseModuleRewriter_AuthorizeRequest(
            object sender, EventArgs e)
        {
            HttpApplication app = (HttpApplication) sender;
            Rewrite(app.Request.Path, app);
        }

        protected void Rewrite(string requestedPath,HttpApplication app)
        {
            if (requestedPath.IndexOf('.') == -1)
            {

                Page page =PageManager.GetPageByAlias(requestedPath.EndsWith("/") ? requestedPath.Substring(0, requestedPath.Length - 1) : requestedPath);
                if (page != null)
                {
                    app.Context.RewritePath(page.RelativeUrl == null ? "/Default.aspx?PageId=" + page.Serial : page.RelativeUrl.Substring(1), false);
                    //app.Session["ThisPage"] = page;
                    app.Response.StatusCode = 200;
                }
                else
                {
                    app.Response.StatusCode = 404; 
                }

            }
        }

Я должен объяснить, что «Страница» - это объект базы данных, который имеет свойства «RelativeUrl» и «AliasAddress». Любая идея, что не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...