2009-05-27 7 views
0

Я работаю с WCF (VS2005, .Net 3.0) и хочу протестировать сервис, напрямую вызвав его через веб-браузер, а не из кода.Невозможно напрямую вызвать службу WCF (.NET 3.0)

У меня есть один метод, украшенный вызовом атрибута OperationContract GetTest(). У меня есть служба за файлом .svc, к которому я могу получить доступ; однако, когда я иду .../Test.svc/GetTest, появляется только пустой экран.

Вот web.config:

<system.serviceModel> 
    <services> 
    <service name="TestService" behaviorConfiguration="TestBehavior"> 
     <endpoint 
     address="" 
     binding="basicHttpBinding" 
     contract="TestService.ITestService"></endpoint> 
    </service> 
    </services> 
    <behaviors> 
    <serviceBehaviors> 
     <behavior name="TestBehavior"> 
     <serviceMetadata httpGetEnabled="true"/> 
     </behavior> 
    </serviceBehaviors> 
    </behaviors> 
</system.serviceModel> 

Всякий раз, когда я пытаюсь установить точку останова в службе, он не получает удар, как хорошо. Какие-нибудь идеи о том, где я ошибаюсь? Я привык к службам ASMX, где я получаю ответ при доступе к методам через браузер; однако я могу получить только страницу «Вы создали службу», когда я обращаюсь к службе, но ничего из методов.

+0

Услуги WCF основаны на SOAP - вы не можете вызвать службу SOAP из своего браузера. –

+0

@marc_s Я разработал ряд стандартов ASMX-сервисов, которые являются базой SOAP и могут отображать сообщение SOAP в моем браузере. Вот что я пытаюсь сделать здесь. – JamesEggers

ответ

0

WCF не предлагает параметры «вызвать его из Интернета», которые раньше выполняли службы ASMX. Зачем? Это огромная дыра в безопасности, а не лучший способ протестировать веб-сервис.

Один из вариантов заключается в том, чтобы предлагать @Yossi и использовать Wcf Service Test Tool.

Или еще лучше, напишите свой собственный клиент, чтобы потреблять ваш веб-сервис. Это поможет вам справиться с теми же проблемами, с которыми будут работать те, кто будет потреблять ваши услуги, и, верьте, WCF может иметь довольно много таких зависаний.

Не поймите меня неправильно, WCF является фриккином! Но есть много жонглировать, и если вы новичок, вы ошибетесь. Даже ранние усыновители до сих пор не знают всех входов и выходов WCF.

+0

Этот инструмент незаменим при тестировании служб WCF. Отъезд, http://www.wcfstorm.com. Он может фактически проверить ваш WSDl и позволить вам динамически вызывать методы – user20155

0

Вы пытались использовать SoapUI? Они предоставляют действительно отличный инструмент тестирования веб-сервисов. У них даже есть бесплатная версия, которая будет работать как webStart!

Также попробуйте установить конечную точку mex, c.f. msdn link.

4

Рассмотрите возможность использования Wcf Service Test Tool для первоначального тестирования вашей службы (но really- модульное тестирование является вашим другом :-)) (и да - вам нужно будет MEX конечной точки, по крайней мере, на начальном этапе)

для отладки - Прикреплены ли вы к правильному процессу размещения сервиса? вы скомпилированы с отладочными символами? если служба публикуется в IIS - это опубликованный код, такой же, как и код в визуальной студии?

+0

Мне бы хотелось использовать WCFTestClient.exe; однако среда, в которой я работаю, ограничивает меня только .net 3.0 (VS2005). Так как WCFTestClient.exe появляется, если он появился только с VS2008, я думаю, что мне не повезло. – JamesEggers

0

Взгляните на WebGetAttribute - которому требуется .NET 3.5.

Это позволяет вам получать данные REST из веб-службы WCF.

+0

Я не могу использовать .net 3.5 в проекте, над которым я работаю. Должна быть .net 3.0 вместо этого печально. – JamesEggers

Смежные вопросы