Побачивши цю дезінформацію, середній розробник може припустити дві причини
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-сервісу
- Натисніть Start, введіть Cmd, а потім OK.
- У командному рядку введіть net stop http і натисніть Enter.
- У командному рядку введіть net start http і натисніть Enter.
Потім перезапустіть IIS. Спробуйте ще раз, гаразд, помилки немає, ідеальне рішення
|