繁体   English   中英

ASP.NET IIS错误中的URL重写

[英]URL rewrite in ASP.NET IIS error

我试图重写.aspx页面的URL,但我总是发现这个错误:

错误500.23:ASP.NET httpHandlers配置不适用于托管管道模式。

前提:我正在使用Visual Studio 2012和c#

web.config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <httpHandlers>
            <add verb="*" path="viaggi/*.aspx" type="mioRewrite, mioRewrite"/>
        </httpHandlers>
        <compilation debug="true" targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" />
    </system.web>
    <appSettings>
        <add key="strConn" value="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\db_viaggi.mdf;Integrated Security=True" />
    </appSettings>
</configuration>

类mioRewrite由类IHttpHandlerFactory继承

public class mioRewrite : IHttpHandlerFactory
{
    public IHttpHandler GetHandler(HttpContext context, string requestType, string URL, string pathTranslated)
    {
        classe HttpContext
        context.Items["fileName"] = Path.GetFileNameWithoutExtension(URL).ToLower();

        return PageParser.GetCompiledPageInstance(URL, context.Server.MapPath("viaggi.aspx"), context);
    }

    public void ReleaseHandler(IHttpHandler handler) { }
}

我使用过这种方法,因为有些样本会谈论它。

我要做些什么来解决这个错误,以及创建一个URL重写方法?

错误给你的线索。 它不是在集成模式下运行IIS,而是需要在经典模式下运行。

有趣的是,这是一个问题,我的公司已经开了微软的票。 IIS工程师证实它似乎是一个错误,无法提供解决方案。 如果使用无扩展路由和重写规则,我们必须将IIS保留在经典模式下。

如果在IISExpress中运行而不是完整的IIS,您仍然可以使用以下步骤更改为应用程序的经典模式:

  1. 单击解决方案资源管理器中的Web项目
  2. 按F4以显示属性页面。 您不需要完整的多标签属性页面,而是需要小属性窗口。
  3. 找到“管理的管道模式”下拉列表并将其更改为“经典”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM