2013-11-08 2 views
1

У меня есть веб-страница, которая получает уведомление от платежного процессора, когда клиент сделал платеж на моем сайте.IIS 7.0 увеличивает ограничение по URL-адресу

Уведомление поступает в форме отправки GET, поэтому URL-адрес может быть довольно длинным. У меня нет юрисдикции в отношении того, как отправляется уведомление, поэтому я не могу просто изменить его на представление POST, которое решило бы все мои проблемы.

Проблема в том, что иногда уведомление не получено, поскольку URL-адрес слишком длинный. Он едва ограничивает ограничение того, что разрешено, потому что, если я сокращу URL-адрес всего на 15 символов, я получаю успешное соединение.

Я попытался изменить UrlSegmentMaxCount о реестре Windows, но проблема остается.

Кто-нибудь знает, как я могу настроить свой сайт php на IIS, чтобы разрешить более длительные запросы GET?

EDIT

Это то, что я пытался.

В случае это вопрос PHP я добавил строку в моем файле .htaccess:

php_value suhosin.get.max_value_length 2048 

и попытаться исправить любые окна вопросов, которые я клал в моем реестре: #

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters] "UrlSegmentMaxLength" = DWORD: 00001000

+0

Вы уверены, что проблема связана с IIS, а не с PHP? – Dai

+0

Ну, на самом деле, нет, я нет. Можете ли вы предложить, как я буду проверять мои ограничения PHP? –

+0

Подсчитайте символы 2081, которые означают, что он достиг предела 2000 символов –

ответ

1

Включено request filtering? Если он пытается изменить параметры maxQueryString и maxUrl и посмотреть, не ограничивает ли это вас.

+3

Чтобы решить эту проблему: в IIS -> нажмите на мой сайт в разделе «Сайты» в левой панели «Подключение» -> dbl, нажав кнопку «Фильтрация запросов» (в разделе «IIS в основной области содержимого») -> «Действия» в правой панели окна нажал «Изменить настройки параметров» -> В результате всплывает удвоенная «Максимальная длина URL» и «Максимальная строка запроса». –

1

Посмотрите на maxUrlLength настройка в файле web.config. Если не определено, вы можете увеличить максимальное количество принятых допустимых символов в URL с параметром httpRuntime:

<configuration> 
    <system.web> 
    <httpRuntime maxUrlLength="500" /> 
    </system.web> 
</configuration> 

Это увеличит значение по умолчанию 260 символов 500.

(источник: http://www.saotn.org/the-length-url-request-exceeds-configured-maxurllength-value/) - используется «Ответ», чтобы добавить код конфигурации web.config.

+0

Хороший звонок, но, к сожалению, проблема остается –

+0

@KevinBradshaw можно ли разместить пример, либо здесь, либо на pastebin? Возможно, я могу воспроизвести проблему в тестовой среде. –

+0

спасибо за предложение, но проблема была решена путем изменения параметров в фильтрации запросов. –

Смежные вопросы