Подтвердить что ты не робот

Как можно отключить проверку запроса для HttpHandlers?

Можно ли отключить проверку запроса для HttpHandlers?

Немного фона - у меня есть веб-приложение ASP.NET с использованием HttpHandler для получения ответа от WorldPay. Журналы IIS показывают, что обработчик правильно вызывается из WorldPay, но код внутри обработчика никогда не вызывается.

Если я создаю физическую страницу ASPX и задаю ValidateRequest = false в заголовке и поместил тот же код в метод Page_Load, код вызывается без каких-либо проблем.

Это решает проблему, хотя я бы предпочел использовать HttpHandler для этого, поскольку он лучше подходит для этого типа функций, вместо того, чтобы иметь пустую страницу ASPX, хотя это зависит от возможности отключить проверку запроса.

Веб-приложение использует ASP.NET 2.0, а сервер - IIS6.

4b9b3361

Ответ 1

В IIS6 вы можете просто добавить validate="false" в регистрацию web.config.

<add path="handler.axd" type="Foo.Bar.MyHandler" verb="*" validate="false" />

Если кто-то может пролить свет на то, как это сделать в интегрированном режиме IIS7, это также очень полезно.

Ответ 2

это довольно легко. Измените следующий фрагмент, чтобы соответствовать пути обработчика и добавьте в свой web.config:

<configuration>
  ....
  <location path="YOUR HANDLER PATH" allowOverride="true">
    <system.web>
      <httpRuntime requestValidationMode="2.0" />
      <pages validateRequest="false" />
    </system.web>
  </location>
</configuration>