laxman2jasmi Ответов: 2

Системы.Нет.Ошибка исключения webexception dispalying во время работы метода WCFRestful услуги, используя класс httpwebresponse


Привет,

Я пытаюсь получить ответ от URL-адреса с помощью HttpWebRequest
объект. Это мой код ниже:
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
WebResponse myResp = myReq.GetResponse();
Stream stream = myResp.GetResponseStream();
System.Drawing.Image oImg = System.Drawing.Image.FromStream(stream);

здесь длина моего URL-адреса составляет 2080 символов, и мне нужно отправить до 5000 символов. Есть ли какие - то решения для этого сценария? Пожалуйста, дайте мне знать.

Когда я запускаю пример консольного приложения, я получаю следующую ошибку:
"удаленный сервер вернул ошибку 404, не найденную в system.net.httpwebrequest.getresponse"

URL-АДРЕС:
http://localhost/RestfulService/Service.svc/runPowershell?strQuery=<?xml version='1.0'?><wql host='10.10.10.10'' username='abcd' password='12545'><query id='0.' ><![CDATA[ Get-WmiObject -query 'select CSName from Win32_OperatingSystem']]></query><query id='1.' ><![CDATA[ Get-WmiObject -query 'select Caption from Win32_OperatingSystem ']]></query><query id='2.' ><![CDATA[ Get-WmiObject -query 'select CSDVersion from Win32_OperatingSystem']]></query><query id='3.' ><![CDATA[ Get-WmiObject -query 'select FreePhysicalMemory from Win32_OperatingSystem']]></query><query id='4.' ><![CDATA[ Get-WmiObject -query 'select TotalVisibleMemorySize from Win32_OperatingSystem']]></query><query id='5.' ><![CDATA[ Get-WmiObject -query 'select NumberOfProcesses from Win32_OperatingSystem']]></query><query id='6.' ><![CDATA[ Get-WmiObject -query 'select Size from Win32_DiskDrive']]></query><query id='7.' ><![CDATA[ Get-WmiObject -query 'select LoadPercentage from Win32_Processor']]></query><query id='8.1' ><![CDATA[ Get-WmiObject -query 'select FreePhysicalMemory from Win32_OperatingSystem']]></query><query id='8.2' ><![CDATA[ Get-WmiObject -query 'select TotalVisibleMemorySize from Win32_OperatingSystem']]></query><query id='9.1' ><![CDATA[ Get-WmiObject -query 'select FreeSpace from Win32_LogicalDisk']]></query><query id='9.2' ><![CDATA[ Get-WmiObject -query 'select size from Win32_LogicalDisk']]></query><query id='10.1' ><![CDATA[ Get-WmiObject -query 'select FreeSpace from Win32_LogicalDisk']]></query><query id='10.2' ><![CDATA[ Get-WmiObject -query 'select size from Win32_LogicalDisk']]></query><query id='11.1' ><![CDATA[ Get-WmiObject -query 'select FreeSpace from Win32_LogicalDisk']]></query><query id='11.2' ><![CDATA[ Get-WmiObject -query 'select size from Win32_LogicalDisk']]></query></wql>

Длина URL-адреса: 2371

Sandeep Mewara

Я сомневаюсь, но давайте посмотрим на другие ответы. Длина URL-адреса просто слишком велика.

Abdul Quader Mamun

Сложный URL-адрес. непонятный.

2 Ответов

Рейтинг:
20

sjelen

У вас есть недопустимые символы в строке запроса.
На стороне клиента вам нужно избежать его, прежде чем отправлять запрос с помощью
Uri.EscapeUriString(string) или
Uri.EscapeDataString(string)
Оба эти метода ограничены 32766 символами во входных строках.

Ограничение также может быть на стороне обслуживания.
Если ваша служба размещена в IIS, я думаю, что максимальная строка запроса по умолчанию составляет около 4 КБ.

Для IIS 7 можно изменить максимально допустимый url-адрес и длину строки запроса:
appcmd set config /section:requestfiltering /requestlimits.maxurl:<size in bytes>
и
appcmd set config /section:requestfiltering /requestlimits.maxquerystring:<size in bytes>

Вы можете найти более подробную информацию здесь[^].
Вы также можете использовать диспетчер IIS, как описано выше здесь[^]


laxman2jasmi

привет, это прекрасно работает в операционной системе Windows XP. но он не работает в windows 7(IIS 7.0). Пожалуйста, дайте мне знать, если есть какие-либо решения для этого

sjelen

Я обновил решение с помощью сведений о конфигурации IIS, которые вы могли бы попробовать.

laxman2jasmi

Большое спасибо

Рейтинг:
2

Assil

Request Filtering is a built-in security feature that was introduced in Internet Information Services (IIS) 7.0, and replaces much of the functionality that was available through the UrlScan add-on for IIS 6.0. All of the settings for the request filtering feature are located within the <requestFiltering> element, which contains several child elements for each of the following feature areas:



1- Go to IIS.
2-Click on "Request Filtering"
3- Right Click and select Edit Feature Settings
4- Adjust Request Limits

Adjust Request Limits is where the limits to length of the request and the lenth of the query string are set.