Удаленный сервер возвратил ошибку: 400 плохих запросов в WCF - PullRequest
0 голосов
/ 14 февраля 2011

В нашем проекте мы вызываем файл .svc непосредственно с веб-страницы asp.net, и я получаю сообщение об ошибке «Сервер удаленного доступа возвратил ошибку: (400) неверный запрос.

Архитектура нашего проекта такова: мы используем файл .svc в нашем веб-приложении и файл .cs для svc in writer в другом проекте библиотеки классов. Из aspx мы вызываем службу WCF напрямую, без добавления ссылки или чего-либо еще. Я не могу изменить концепцию, потому что это наш стандарт. Я могу добавить ссылку на службу и вызвать эти методы, но я хотел вызвать метод непосредственно из URL-адреса .svc.

Я разозлился на 2 дня и не смог устранить ошибку. Мы используем HttpWebRequest для получения ответа от сервиса. По сути, служба будет принимать объект передачи данных (DTO) в качестве входных данных и возвращает то же самое (DTO) в качестве выходных данных только с одним значением.

Проверьте следующий код:

HttpStatusCode statusCode = HttpHelper.PostXmlRequestValue(requestXMLInput, 
      string.Format("http://{0}/{1}/MySample.svc/webhttp/MyMethodName",  
      Request.ServerVariable["HTTP_HOST"], Request.ApplicationPath);  

Тот же код работает на одной машине, но не на другой. Я проверил конфигурацию и все то же самое, но все равно я получаю ту же ошибку.

Когда я использую URL-адрес .svc на моей машине, он работает, но выдает сообщение «Метод не разрешен». Когда я проверил тот же URL в рабочей машине, я получил то же сообщение .. Я считаю, что есть одна простая вещь, которую я упускаю. Я не мог найти, так как я новичок в WCF.

1 Ответ

0 голосов
/ 14 февраля 2011

При использовании HttpWebRequest ошибка «Метод не разрешен» - это, например, отправка Http GET, когда служба ожидает POST Http.

HttpWebRequest - это конфигурация на основе REST, это ограничивает сложностьDTO, которые вы можете отправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...