Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 20667|Відповідь: 0

[ASP.NET] GET запит "HTTP Error 400. URL запиту недійсний»

[Копіювати посилання]
Опубліковано 04.07.2018 09:53:58 | | | |


Побачивши цю дезінформацію, середній розробник може припустити дві причини

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. Спробуйте ще раз, гаразд, помилки немає, ідеальне рішення





Попередній:Тип «Object» визначається в непосиланій асемблі. Потрібно додати відповідь до програми...
Наступний:Практика Ionic Development для Android App (4): Позиціонування API карти Baidu
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com