Как использовать службу WCF с HTTP GET (в Visual Studio 2010)
-
28-09-2019 - |
Вопрос
Мы постарались использовать очень простое обслуживание WCF с HTTP GET, и мы не можем заставить его работать. Мы следили за тем «руководством», но это не работает
- http://msdn.microsoft.com/en-us/library/bb412178.aspx.
- http://www.dotnetfunda.com/articles/article779-simple-5-steps-to-expose-wcf-services-us-rest-style-.aspx.
Когда мы называем наш сервис со следующим URL, мы получаем страницу не найдут ошибку:
Базовый URL (http: // localhost: 9999 / Service1.svc) работает нормально и вернет страницу информации об услуге WCF.
Это шаги и код для воспроизведения нашего примера.
- В Visual Studio 2010 создайте новый проект «Приложение WCF Service»
Замените интерфейс ISERVICE с помощью этого кода
[ServiceContract()] public interface IService1 { [OperationContract()] [WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "GetData/{value}")] string GetData(string value); }
Замените класс услуг этим кодом
public class Service1 : IService1 { public string GetData(string value) { return string.Format("You entered: {0}", value); } }
Web.config выглядит так
<system.web> <compilation debug="true" strict="false" explicit="true" targetFramework="4.0" /> </system.web> <system.serviceModel> <services> <service name="Service1"> <endpoint address="" binding="webHttpBinding" contract="IService1" behaviorConfiguration="WebBehavior1"> </endpoint> </service> </services> <behaviors> <endpointBehaviors> <behavior name="WebBehavior1"> <webHttp helpEnabled="True"/> </behavior> </endpointBehaviors> <serviceBehaviors> <behavior> <serviceMetadata httpGetEnabled="true"/> <serviceDebug includeExceptionDetailInFaults="false"/> </behavior> </serviceBehaviors>
- Нажмите RUN и попробуйте позвонить в метод получения
Если кто-то получает это или что-то подобное, это было бы очень добру, если бы вы могли ответить с информацией о рабочем примере.
Спасибо большое
Решение
Я воссоздал ваш образец - работает как очарование.
Одна точка: сделать ваш договор на обслуживание (public interface IService1
) и внедрение услуги (public class Service1 : IService1
) существовать внутри .NET имен пространства ??
Если это так, вам нужно изменить свой * .svc и ваш web.config
включать:
<services>
<service name="Namespace.Service1">
<endpoint address="" binding="webHttpBinding"
contract="Namespace.IService1"
behaviorConfiguration="WebBehavior1">
</endpoint>
</service>
</services>
То <service name="...">
атрибут и то <endpoint contract="...">
Должен включать пространство имен .NET для этого на работу.