визуальный веб-разработчик Веб-сервис при отладке HTTP / 1.1 400 Bad Request

У меня есть приложение веб-службы .net c # mvc3, разработанное с помощью Visual Web Developer 2010. Я вызываю веб-службы из мобильного приложения Android. Я хочу протестировать веб-службы из эмулятора eclipse. Когда я отлаживаю приложение веб-службы, все работает нормально, вызывая службы из веб-браузера, но когда я вызываю их из приложения Android с помощью эмулятора, я получаю «HTTP / 1.1 400 Bad Request».

Любопытно то, что если я опубликую приложение веб-службы на моем локальном IIS 7, все будет нормально, хотя я не могу отлаживать службу.

когда я отлаживаю службу с помощью визуального веб-разработчика, появляется веб-страница с таким адресом:

"http: // localhost: 1627 / myservice.asmx / myMethod"

В моем приложении для Android я вызываю службу с таким URL-адресом:

"http://10.0.2.2:1627/myservice.asmx/myMethod"

но затем я получаю сообщение «HTTP / 1.1 400 Bad Request»

Я действительно был бы признателен за любую помощь.

благодаря.


person Juan    schedule 31.07.2012    source источник


Ответы (2)


Согласно Не удается подключиться к серверу разработки ASP.NET (VS2010) через IP-адрес

Сервер разработки ASP.NET будет обслуживать страницы для запросов браузера на локальном компьютере. Он не будет обслуживать страницы на другом компьютере. Кроме того, он не будет обслуживать файлы, выходящие за рамки приложения. Сервер разработки ASP.NET предоставляет эффективный способ тестирования страниц локально перед публикацией страниц на производственном сервере, на котором работает IIS.

person Bas van Dijk    schedule 03.12.2012

В Visual Studio 2010 я всегда использовал inetd, инструмент переадресации портов. С Visual Studio 2012 у меня тоже есть эта проблема. Проблема в том, что на сервере разработки разрешены только вызовы localhost, даже вызовы прокси не работают, если вы не измените заголовки запроса. Я внес некоторые изменения в существующий простой прокси-сервер, который нашел на GitHub. Он изменяет IP-адрес в URL-адресе запроса на `localhost. Загрузите код здесь.


Я нашел лучшее решение. Если на вашем компьютере установлен IIS Express, создайте новое приложение в IIS в каталоге вашего проекта и дайте ему псевдоним. Обратите внимание, что настроен правильный пул приложений, и вы сможете просматривать свой сайт через http://localhost/YourProject/. Если вы не можете подключиться с других компьютеров, это, вероятно, проблема с брандмауэром.

person Marthijn    schedule 03.12.2012