asp.net - UrlRewriter.NET 与 .NET 4.0 无法正常工作

标签 asp.net .net url-rewriting .net-4.0

我有一个 Web 项目,安装了 UrlRewriter.NET,并且在本地 .NET 3.5 上运行良好。

然后,我将其升级到 .NET 4.0,并且它继续在我的本地 PC 上的 Visual Studio 2010 中运行。

当我将此 .NET 4.0 项目移至我的服务器时,URL 重写停止工作。

这是我的 web.config(为了便于阅读而进行了压缩)

<?xml version="1.0"?>
<configuration> 
   <configSections>
      <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
   </configSections>

   <system.web>

   </system.web>
   <rewriter>
      <rewrite url="~/Neat-Url" to="~/Ugly-Url.aspx?id=1"/>
   </rewriter>
   <system.webServer>
       <validation validateIntegratedModeConfiguration="false"/>
       <modules runAllManagedModulesForAllRequests="true">
           <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule"/>
       </modules>
    </system.webServer>
</configuration>

当放在服务器上时,它只返回 404。

有趣的发现。如果我创建一个名为/Neat-Url 的目录,URL 重写将再次开始工作并重定向到/Ugly-Url.aspx?id=1

注意:是的,我意识到 .NET 4.0 有自己的 url 重写,并且我也有与 UrlRewriter 配合使用的现有代码。

那么我注定会失败,因为这是服务器配置问题,还是有办法解决它?

[更新]:好的,所以我已经确定了其他事情。除非文件或目录确实存在,否则 url 重写器将无法工作。

例如。如果我想将/Directory1重定向到/Directory1.aspx,/Directory1必须存在,那么一切正常。

如果我想将/File1.aspx 重定向到/File2.aspx,这也可以,但 File1.aspx 必须存在于文件系统上。

否则我会继续得到 404。这似乎可以通过 .NET 解决,并且与 web.config 有关,因为调用 File1.aspx 会传递到运行时并得到 asp.net 404。仅调用目录获取网络主机 404。

[更新2]:我删除了

<httpModules> 

我的网络配置部分,然后添加

<identity impersonate="false"/>

然后还更改了 validateIntegratedModeConfiguration="true"。仍然是同样的问题,但至少现在在集成模式下得到了验证。

[更新 3]:我现在正在尝试 ManagedFusion,但仍然遇到错误,但它看起来更像是我的配置错误,而不是服务器支持错误。我又提出了一个问题ManagedFusion Url Rewriting not working .

希望这能解决我的问题。

最佳答案

您使用的是什么类型的应用程序池? UrlRewrite 不适用于 .NET 4.0 的经典应用程序池,您的应用程序池必须仅配置为 .NET 4.0 管道模式。

关于asp.net - UrlRewriter.NET 与 .NET 4.0 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4882329/

相关文章:

c# - Array.Count() 比 List.Count() 慢得多

c# - 在 Windows 窗体中托管 IDeskBand

php - Codeigniter URL 重写

c# - 在子页面中覆盖母版页 CSS div 宽度

javascript - 按所选类单击标记内的第一个 onclick 函数

asp.net - 如何可靠地从自定义实体的 OnSave 事件保存 ASP.NET IFRAME?

IIS URL 重写模块 : Redirect Based On QueryString

c# - 在 ASP.NET WebService 上捕获 WebMethod 抛出的自定义异常

c# - 在 .Net 中将信息与 'Type' 对象相关联的最有效的性能方式是什么?

php - 不要重写代表文件的 URL