Увидев такую дезинформацию, средний разработчик может предположить две причины
1. В ссылке есть специальные символы
2. Длина звенья слишком длинная(Похоже, что длина не виновата, она расплывчата, я забыл)
Адрес изображения ошибки следующий: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99
Далее мы начали изучать причины ошибок, с которыми могли столкнуться
1. Проверьте URL, никаких специальных символов нет (исключите эту причину)
2. URL на первый взгляд кажется очень длинным, так что давайте удалим половину длины параметра и затем запросим его. В результате он может быть успешным, а затем, постоянно добавляя символы, выясняется, что длина превышает 339 и сообщает об этой ошибке, а после 339 особых символов нет никаких специальных символов, так чтоМы по сути определили, что причиной ошибки должно быть слишком длинный URL。
Следующий шаг — решение соответствующих проблем
Затем есть разные Baidu, проверьте конфигурацию, связанную с изменением предела длины строк запроса
Затем модифицируйте web.config
1. Изменить конфигурации maxQueryStringLength и maxRequestLength в узле httpRuntime
2. Измените узел system.webServer следующим образом
Сохраняя и запуская с ожиданием, ошибки остались прежними, и, похоже, это бесполезно
В этот момент я начал задумываться, почему бы и нет, разве это не вступит в силу, думая, что многие такие, как я, думают о глобальной сеттинге IIS, разве эта настройка не будет отменена, мы всё ещё используем все установленные значения
Не угадайте, просто проверьте (обратите внимание, что проверяемый вами requestFiltering находится в system.webServer, не смотрите не на тот узел)
Если он выключен, значение overrideModeDefault равно Deny, что означает, что наша конфигурация будет основана на конкретной конфигурации нашего сайта.
Так всё нормально, почему это ошибка?!
Наконец, мое внимание привлекло возвращение, которое не было принято в stackoverflow
связьhttps://stackoverflow.com/questi ... is-invalid-in-iis-7
Грубо говоря, запрос ещё не достиг IIS и был убит операционной системой.
В это время я искал другую статью на Google, которая ссылалась на техническую поддержку оптического радио Microsoft
Адрес следующийhttps://support.microsoft.com/zh ... ettings-for-windows
Суть этих двух статей в том, что нам нужно изменить реестр, и, вероятно, эти две статьи изменяются по следующим двум значениям реестра
Далее попробуйте и перейдите в реестр CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Кликните правой кнопкой мыши по пустой области и выберите значение Dword, как показано на картинке
Создайте новое имя с названием UrlSegmentMaxLength, установите значение 2048 и нажмите OK
Настройка UrlSegmentMaxCount такая же, как и выше, значение также Dword 2048, нажмите OK.
Модификация может вступить в силу только в случае перезапуска HTTP-сервиса
- Нажмите Старт, введите Cmd, а затем OK.
- В командной строке введите net stop http и нажмите Enter.
- В командной строке введите net start http и нажмите Enter.
Затем перезапусти IIS. Попробуй ещё раз, хорошо, ошибки нет, идеальное решение
|