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

blk*_*bam 22 iis-7 url-rewriting

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

Unrecognized attribute 'trackAllCaptures' 
Run Code Online (Sandbox Code Playgroud)

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

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

Kev*_*Kev 32

Url Rewrite的二进制文件位于:

%SystemRoot%\system32\inetsrv\rewrite.dll

Url Rewrite 1.1的文件版本为7.1.490.43.
Url Rewrite 2.0的文件版本为7.1.761.0或7.1.871.0(可能还有其他版本,但这些是我所知道的两个不同版本).

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

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

如果安装了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'或其依赖项之一.该系统找不到指定的文件.

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

跨条件跟踪捕获组

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

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


Arj*_*jun 7

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

控制面板 URL 重写模块图像