2008-12-12 5 views
31

Я использую ASP.net с .NET 3.5 на IIS7 (Vista) с модулем перезаписи URL-адресов от Microsoft.asp.net, url rewrite module и web.config

Это означает, что у меня есть раздел

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

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

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

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

+3

Я могу подтвердить, что эта проблема все еще встречается в VS2010 и IIS7.5. – 2010-05-18 09:36:43

+1

, это приводит к сбою сборки моего проекта mvc. довольно плохо. – 2011-04-18 04:50:18

ответ

25

Я был в состоянии получить эту работу в Visual Studio 2010.

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

C:\download_directory\rewrite2_intellisense>cscript UpdateSchemaCache.js

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

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

3

Я считаю, что вы должны иметь URL Rewrite Module «установлен» в файле web.config на вашей системе.

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

+0

nope, я несколько раз устанавливал модуль перезаписи на нескольких машинах (Vista и Win7) через установщик Web Platform Installer 2.0 и собственный установщик из IIS.net – Christoph 2009-05-22 14:58:45

3

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

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

Update: Intellisense может быть установлен здесь:

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

Обновление: Проверка что разделгруппа идентифицируется в% 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> 
+0

Привет, У меня на самом деле это (для перезаписи 2 ,.0): <раздел Name = "правила" overrideModeDefault = "Разрешить" /> <раздел Name = "GlobalRules" overrideModeDefault = "Запретить" allowDefinition =/"AppHostOnly"> <раздел Name = "outboundRules" overrideModeDefault = "Разрешить" /> <раздел Name = "провайдеры" overrideModeDefault = "Разрешить" /> <раздел Name = "rewriteMaps" overrideModeDefault = "Разрешить" /> но проблема все еще существует ... – Christoph 2009-12-03 10:14:41