我如何知道安装了哪个版本的IIS7 URL Rewrite模块

时间:2012-08-05 00:21:02

标签: url-rewriting iis-7

我在IIS7中创建了一个重写规则,它使用conditions元素中的trackAllCaptures =“false”属性并使用outboundRules。一切都在我的测试系统上运行正常但是当我将这些规则部署到GoDaddy时,我得到错误:

Unrecognized attribute 'trackAllCaptures' 

如果我包含outboundRules节点,我会从服务器收到500错误。我与他们的支持进行了交谈,他们坚持认为他们支持2.0版本的URL Rewrite模块。我的问题是如何验证或与他们沟通如何检查该模块的版本?我无法在如何检查版本的情况下尝试安装它。

我正在尝试重写ASP.Net应用程序的URL而不是WordPress,以便从URL中删除子文件夹,这在他们的多域托管中是一个非常普遍的问题。我使用的示例位于:http://weblogs.asp.net/owscott/archive/2010/05/26/url-rewrite-multiple-domains-under-one-site-part-ii.aspx

2 个答案:

答案 0 :(得分:32)

Url Rewrite的二进制文件位于:

%SystemRoot%\system32\inetsrv\rewrite.dll

Url Rewrite 1.1的文件版本为7.1.490.43 Url Rewrite 2.0的文件版本为7.1.761.07.1.871.0(可能还有其他版本,但这些是我所知道的两个版本)。

如果您没有控制台访问权限来验证版本号,请尝试在简单的网页中运行以下代码:

Assembly a = Assembly.Load("Microsoft.Web.Iis.Rewrite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
Response.Write(a.FullName);

如果安装了UrlRewrite 2.0,那么您将看到如下内容:

Microsoft.Web.Iis.Rewrite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

如果不是,那么你会得到一个例外:

  

无法加载文件或程序集“Microsoft.Web.Iis.Rewrite,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其中一个依赖项。系统找不到指定的文件。

您也可以在此文档页面中指出它们:

  

Tracking Capture Groups Across Conditions

这一段很清楚trackAllCaptures是一个特定于2.0的设置,如果它不起作用,那么肯定没有安装2.0:

  

在URL Rewrite Module 2.0中,可以更改捕获组的索引方式。在trackAllCaptures集合上启用<conditions>设置会使捕获组形成通过反向引用可用的所有匹配条件。

答案 1 :(得分:1)

可以肯定的是,@ Kev Answer可以帮助我识别版本,但是似乎还有其他选择。我只是在检查控制面板>安装的程序。在那里,我发现安装了版本。如果已安装,则检查版本并与@Kev答案进行比较以了解它是版本1还是版本2

Control panel Url Rewrite Module Image