Ответ 1
Да, вы можете вызвать эти методы в браузере, если ваша служба настроена правильно, хотя у вас неправильный синтаксис URL.
Чтобы вызвать методы WCF из браузера, вам нужно сделать две вещи:
- Используйте
[WebGet]
и[WebInvoke]
атрибуты ваших методов, которые вы выполнили. -
Используйте
webHttpBinding
для конечной точки вашей службы и включите поведениеwebHttp
. См. http://weblogs.asp.net/kiyoshi/archive/2008/10/08/wcf-using-webhttpbinding-for-rest-services.aspx для примера конфигурации, но соответствующие части:<service> <endpoint behaviorConfiguration="webBehavior" binding="webHttpBinding" contract="MyServiceContract" /> </service> <endpointBehaviors> <behavior name="webBehavior"> <webHttp /> </behavior> </endpointBehaviors>
Как только это будет сделано, WCF начнет прослушивать URL-запрос и перенаправить их на соответствующие веб-методы. Вы можете настроить шаблоны URL-адресов в своих атрибутах WebGet
или WebPost
, которые отображают сегменты URL-адресов для параметров метода, если вы хотите сделать ваши URL-адреса "чистыми", но это необязательно. В противном случае вы передаете параметры так же, как вы передаете параметр на любой другой URL-адрес, используя разделитель параметров:
http://localhost:49815/MyService.svc/methodName?parameterName=value
Обратите внимание, что по умолчанию для метода, вызванного веб, является POST. Технически вы можете сделать это через браузер, но это намного сложнее (вам нужно создать локальную HTML-форму или использовать консоль Javascript или что-то подобное), но методы WebGet
можно вызвать, просто запросив правильный URL-адрес.
Кроме того, если ваши методы возвращают что-либо более сложное, чем строка, WCF попытается сериализовать его как JSON; вам может понадобиться "просмотреть источник" на полученной странице, чтобы увидеть его.