asp.net, модуль перезаписи URL и web.config

Я использую ASP.net с .NET 3.5 на IIS7 (Vista) с модулем перезаписи URL от Microsoft.

Это значит, что у меня есть

<system.webServer>
    <rewrite>...</rewrite>
    ...
</system.webServer>

раздел внутри web.config, но я получаю предупреждение, что в system.webServer элемент «переписать» не допускается.

Как я могу настроить свою систему, чтобы разрешить (и, возможно, даже иметь Intellisense) для перезаписи части web.config?

Спасибо Кристоф

12.12.2008 16:20:08
Я могу подтвердить, что эта проблема все еще возникает в VS2010 и IIS7.5.
David Foster 18.05.2010 09:36:43
это приводит к сбою сборки на моем проекте MVC. довольно плохо.
Brady Moritz 18.04.2011 04:50:18
3 ОТВЕТА
РЕШЕНИЕ

Мне удалось заставить это работать в Visual Studio 2010.

Начните с поста Руслана здесь и скачайте файл 2.0 IntelliSense. Затем просто следуйте инструкциям, которые он разместил здесь ранее . Все, что я в итоге сделал, выполнил следующую команду, как Руслан наставляет:

C:\download_directory\rewrite2_intellisense>cscript UpdateSchemaCache.js

Как Christoph отмечает в своем комментарии, убедитесь , что вы замените VS90COMNTOOLSс VS100COMNTOOLSв UpdateSchemaCache.js перед запуском выше команду , если вы используете Visual Studio 2010.

Мне не нужно было перезапускать Visual Studio. Я добавил <rewrite>раздел только в соответствующие файлы преобразования Web.config, так как наличие его в основном файле Web.config нарушает локальную отладку.

25
17.08.2010 03:47:06
Привет, Джон, спасибо за ссылку. Работает хорошо в vs2010, но имейте в виду, что если вы используете vs2010, вам нужно изменить в UpdateSchemaCache.js «VS90COMNTOOLS» на «VS100COMNTOOLS» (подсказка для других пользователей :-))
Christoph 16.08.2010 14:35:17
Привет Джонатан. О том преобразовании web.config - как выглядит твое? Единственный способ сделать это - добавить второй раздел system.webServer, содержащий <rewrite> и <rules>. Я бы предпочел не добавлять второй раздел <system.webServer>. У вас есть более элегантный способ?
Eric 7.01.2011 17:04:25
@Jon FreeLand - я получаю эту ошибку (несмотря на то, что запускаю командную строку cmd в качестве администратора) Не удалось открыть файл Xml \ Schemas \ DotNetConfig.xsd. Убедитесь, что скрипт запущен в командной строке с повышенными правами.
chobo2 21.02.2012 17:52:32
Я тоже. Есть ли проблема с Экспресс-версией VS 2010?
Tillito 28.02.2012 13:19:29
Извините, ребята, я не знаю, будет ли это работать с Express. Я использую Ultimate.
Jonathan Freeland 28.02.2012 15:01:30

Я считаю, что вам нужно, чтобы модуль перезаписи URL был "установлен" в файле web.config в вашей системе.

Вам нужно либо установить модуль в своем приложении через интерфейс IIS 7.0, либо попросить хостинговую фирму сделать это за вас.

3
15.05.2009 20:32:23
Нет, я несколько раз устанавливал модуль перезаписи на нескольких машинах (Vista и Win7) через установщик веб-платформы 2.0 и собственный установщик с IIS.net
Christoph 22.05.2009 14:58:45

Я считаю, что вам нужно определить модуль в вашем web.config следующим образом:

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

Обновление: Intellisense можно настроить здесь:

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

Обновление: убедитесь, что sectionGroup определена в% systemroot% \ system32 \ inetsrv \ config \ applicationHost.config:

<sectionGroup name="rewrite">
    <section name="rules" overrideModeDefault="Allow" />
    <section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
    <section name="rewriteMaps" overrideModeDefault="Allow" />
</sectionGroup>
3
28.11.2009 19:41:34
Привет, у меня действительно есть это (для перезаписи 2, .0): <sectionGroup name = "rewrite"> <section name = "rules" overrideModeDefault = "Allow" /> <section name = "globalRules" overrideModeDefault = "Deny" allowDefinition = "AppHostOnly" /> <section name = "outboundRules" overrideModeDefault = "Allow" /> <section name = "provider" overrideModeDefault = "Allow" /> <section name = "rewriteMaps" overrideModeDefault = "Allow" /> </ sectionGroup> но проблема все еще существует ...
Christoph 3.12.2009 10:14:41