Запрос WCF как стандартный веб-сервис ASMX - PullRequest
1 голос
/ 14 октября 2010

Я только недавно создал приложение Silverlight, которое связывается с сервером через WCF. Данные, которые мы передаем взад и вперед, были бесшовными и, честно говоря, довольно простыми для реализации (с SL). К сожалению, мне нужна возможность запрашивать ту же информацию из WCF, как и у веб-службы ASMX. Прямо сейчас я запускаю службу локально (http://localhost/aps.svc), но я не могу «вызвать» любой из методов через веб-браузер (аналог веб-службы asmx). Например: http://FooBar/Service/servic.aspx?op=GetName вернул бы имя. Мне нужна эта возможность, поскольку наше стороннее программное обеспечение ограничено использованием веб-служб asmx, и я хотел бы использовать уже созданный WCF.

Я довольно плохо знаком с WCF и веб-сервисами в целом, поэтому любая помощь будет принята с благодарностью!

-Tom

Ответы [ 3 ]

2 голосов
/ 14 октября 2010

Чтобы использовать службу WCF непосредственно в браузере, вам необходимо переключиться на службу WCF в стиле REST.

См. Центр разработчиков REST WCF информация о WCF и REST.

По сути, с помощью WCF REST вы можете «обращаться» ко всему в своем домене как к ресурсам;REST ориентирован на ресурсы, в то время как SOAP / ASMX ориентирован на работу.

Таким образом, у вас, вероятно, не будет что-то вроде op=GetName в вашем методе, а скорее что-то вроде:

http://yourserver/YourWCFRESTService.svc/SomeObjectOrResource/Name

и это вернет имя «объект» этого объекта или ресурса в виде потока данных XML или JSON.

1 голос
/ 14 октября 2010

Как упоминалось в marc_s, если вы конвертируете или используете REST в качестве одной конечной точки, вы можете заставить его работать.

    [OperationContract(Name = "RetrieveUser")]
    [WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "/{op}")]
    public System.IO.Stream RetrieveUser(String op) { ... }

Это может позволить вам получить оператора и затем правильно ответить.

То, что я сделал, - это наличие контроллера, в котором выполняется работа, а мои службы SOAP и REST просто обрабатывают получение запросов и отправку обратно в правильном формате.

0 голосов
/ 14 октября 2010

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

...