asp.net,url重写模块和web.config

时间:2008-12-12 16:20:09

标签: asp.net url web-config module rewrite

我在IIS7(Vista)上使用带有.NET 3.5的ASP.net和Microsoft的URL重写模块。

这意味着,我有一个

<system.webServer>
    <rewrite>...</rewrite>
    ...
</system.webServer>
web.config中的

部分,但我收到警告,在system.webServer中,不允许使用“rewrite”元素。

如何配置我的系统以允许(甚至可能有Intellisense)在web.config的重写部分?

谢谢 克里斯托弗

3 个答案:

答案 0 :(得分:25)

我能够在Visual Studio 2010中使用它。

从Ruslan的帖子here开始,下载2.0 IntelliSense文件。然后,只需按照之前发布的说明here进行操作即可。我最后做的就是按照Ruslan的指示运行以下命令:

C:\download_directory\rewrite2_intellisense>cscript UpdateSchemaCache.js

正如Christoph在评论中指出的那样,如果您使用的是Visual Studio 2010,请确保在运行上述命令之前在UpdateSchemaCache.js中将VS90COMNTOOLS替换为VS100COMNTOOLS

我不需要重新启动Visual Studio。我将<rewrite>部分仅添加到适用的Web.config转换文件中,因为它在主Web.config中打破了本地调试。

答案 1 :(得分:3)

我认为您需要在系统的web.config文件中“安装”URL重写模块。

您需要通过IIS 7.0界面在应用程序上安装模块,或让您的托管公司为您执行此操作。

答案 2 :(得分:3)

我相信您需要在web.config中定义模块,如下所示:

<system.webServer>
    <modules>
        <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
    </modules>
</system.webServer>

<击> 更新:可以在此处设置智能感知:

http://ruslany.net/2009/08/visual-studio-xml-intellisense-for-url-rewrite-1-1/

更新:验证是否在%systemroot%\ system32 \ inetsrv \ config \ applicationHost.config中标识了sectionGroup:

<sectionGroup name="rewrite">
    <section name="rules" overrideModeDefault="Allow" />
    <section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
    <section name="rewriteMaps" overrideModeDefault="Allow" />
</sectionGroup>