Назад | Перейти на главную страницу

Http Handler необходимо сбрасывать при каждом развертывании. Как я могу добавить эту функциональность в web.config

Мое приложение представляет собой гибрид dotnet 4 - MVC в некоторых областях, веб-формы в других. Это приложение было недавно обновлено до dotnet 4 и включает много старого кода и некоторые несоответствующие части. К сожалению, он включает компонент telerik, который требует от меня запуска пула приложений в классическом режиме.

Чтобы исправить это (в IIS7), мне нужно добавить отображение обработчика в конфигурацию IIS. Это сопоставление в основном представляет собой сопоставление с подстановочными знаками, которое указывает путь с подстановочными знаками «*» к% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll.

Проблема, с которой я столкнулся, заключается в следующем: по какой-то причине это сопоставление сбрасывается при развертывании сайта. Итак, могу ли я добавить функциональность этого сопоставления в веб-конфигурацию? Если да, то как?

Или существует другое решение, позволяющее сделать это добавленное вручную сопоставление «липким», чтобы оно оставалось на месте во время и после развертывания? (Я также спрашиваю об этом в StackOverflow, поскольку я не уверен, должен ли это быть вопрос кодирования или вопрос сервера)

Хорошо, я понял, что происходит; Когда вы редактируете сопоставления обработчиков и добавляете пользовательское сопоставление для одного сайта, он фактически редактирует веб-конфигурацию, добавляя элемент 'handlers' в раздел system.webServer (если он еще не существует), и внутри него он добавляет список подстановочных знаков, который в моем случае таков:

<system.webServer>
    <handlers>
        <add name="Wildcard" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
    </handlers>
</system.webServer>

поэтому я скопировал эти строки и поместил их в свой web.config для среды, в которой я развертываю (которая в данном случае является бета-версией, но мне нужно будет сделать то же самое для производства) и альта, настройка теперь на месте при развертывании. Происходило то, что эти настройки терялись во время каждого развертывания, потому что (очевидно) файл web.config перезаписывался.

Спасибо squillman за попытку помочь мне в этом; Хотя сам разобрался!

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