Я написал пользовательский 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».
Любая идея, что не так?