asp.net – 使用MVC4在URL末尾的点抛出错误

HTTP://本地主机:56472 /测试.抛出丑陋的黄色ASP.NET错误消息 – 无法找到资源.

我如何捕获此请求和

>防止丑陋的黄色
>从请求和重定向中删除期间?

我在Global.asax中有这个:

protected void Application_Error(object sender, EventArgs e) {
        // Do whatever you want to do with the error
}

但错误并未被发现.正常的404s被捕到这里,我成功地重定向到我的自定义错误页面.

我正在部署到Azure PaaS,因此对IIS没有太多精细控制.

更新:我尝试重写:

    <rule name="Strip Periods" stopProcessing="true">
      <match url="^(.*[^.])(\.+)$" />
      <conditions trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^site.com$" />
      </conditions>
      <action type="Redirect" url="{MapProtocol:{HTTPS}}://www.site.com/{R:1}" />
    </rule>

最佳答案 您需要两个步骤才能执行此操作.首先,重写规则来处理重定向:

<rule name="RemoveTrailingDot" stopProcessing="true">
    <match url="(.*)\.+$" />
    <action type="Redirect" url="{R:1}" />
</rule>

其次,以下指令(在this related answer中找到)

<system.web>
    <httpRuntime relaxedUrlToFileSystemMapping="true"/>
</system.web>

对相关答案的评论表明它并不总是有效,但它在Windows 10上的IIS上工作.

点赞