Asp.net 带有.NET 4.0的UrlRewriter.NET不工作

Asp.net 带有.NET 4.0的UrlRewriter.NET不工作,asp.net,.net,url-rewriting,.net-4.0,Asp.net,.net,Url Rewriting,.net 4.0,我有一个web项目,安装了UrlRewriter.NET,并且在.NET3.5本地运行良好 然后我将其升级到.NET4.0,并在VisualStudio2010的本地PC上继续工作 当我将这个.NET4.0项目移动到我的服务器时,url重写停止工作 这是我的web.config(为了便于阅读,这里进行了压缩) 希望这能解决我的问题。您可以使用与.net 4.0和GoDaddy一起工作的替代重写器。例如托管融合URL重写器和反向代理 我的猜测是,一些与GoDaddys medium trust

我有一个web项目,安装了UrlRewriter.NET,并且在.NET3.5本地运行良好

然后我将其升级到.NET4.0,并在VisualStudio2010的本地PC上继续工作

当我将这个.NET4.0项目移动到我的服务器时,url重写停止工作

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



希望这能解决我的问题。

您可以使用与.net 4.0和GoDaddy一起工作的替代重写器。例如托管融合URL重写器和反向代理


我的猜测是,一些与GoDaddys medium trust配置相关的权限导致了您所看到的不一致

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

似乎URL Rewriter.NET无法正常运行

这很可能是因为我的应用程序运行在虚拟目录中

我确实设法让微软的URL重写工作正常(不是URL路由,因为它也有虚拟目录的问题)

这就是我要用的


我认为可以公平地说,URLRewriter.NET已经有了今天。

将重写模块更改为。我和Godaddy有同样的问题,所以更改解决了我的问题。

这个答案让UrlRewriter在我的Godaddy帐户上工作:

解决方案是将以下内容添加到web.config:

<system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
  <modules runAllManagedModulesForAllRequests="true">
    <add name="UrlRewriter" 
      type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
  </modules>
</system.webServer>

@gilly3的答案是正确的!我刚刚在自己的系统(IIS 8、.NET 4.5 framework)上测试了它

最初我在我的web.config中有这个,它一直在为.NETFramework3.5及以下版本工作

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

所以我把它改成了下面的,它工作了

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
       <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
    </modules>
</system.webServer>


实际上你想要的是这个。请确保此设置为
false
,否则在URL重写重写URL后,.NET应用程序可能会将其重新路由回

   <system.webServer>
       <modules runAllManagedModulesForAllRequests="true">


一个关于Stackflow的问题在10分钟内没有得到回答。我一定有麻烦了:)为什么不直接使用微软提供的内置重写器呢?我不同意对这个问题进行随机的结束和否决投票。是的,它已经使用了5年,但问题仍然存在,仅仅是在旧技术上。这个问题的离题标志似乎无效,因为它可以复制,而且不是由于简单的印刷错误。否决票似乎也完全没有道理。@AdamPedley,仅供参考:“[godaddy]标签正在被烧毁,这就是它受到关注的原因。谢谢@PetterFriberg-这就是它受到关注的原因。”。对标记的运行感到满意,但对针对预先存在的问题以及有效的问题和答案所采取的措施感到失望。似乎并非所有请求都被传递到ASP.NET运行时,这就是URL重写无法工作的原因,除非那里有目录或文件。它使用的是集成管道(不是经典)从经典到管道的切换导致URLEwrite在Godaddy(.net4,iis7)上为我提供了支持,而它以前并不是在玩球。
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
       <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
    </modules>
</system.webServer>
   <system.webServer>
       <modules runAllManagedModulesForAllRequests="true">