Как использовать службу WCF в режиме REST?

Развернутая служба wcf (.net 4.0). Конфигурация стороны службы выглядит так:

<endpoint address="" 
          binding="webHttpBinding" 
          bindingNamespace="https://mydomain/myservice/services"     
          behaviorConfiguration="WebBehavior"
          contract="MyService" />

<endpointBehaviors>
  <behavior name="WebBehavior">
    <webHttp />
  </behavior>
</endpointBehaviors>

Попытка использовать службу в веб-приложении, web.config выглядит так:

<system.serviceModel>
    <client>      
        <endpoint name="MyServiceEndpointBasicHttp" 
                  address="http://myDomain/myService"
                  binding="webHttpBinding" behaviorConfiguration="webBehavior" 
                  contract="MyNamespace.IMyService" />
     </client>
     <behaviors>
         <endpointBehaviors>
             <behavior name="webBehavior">
                 <webHttp />       
             </behavior>     
          </endpointBehaviors>
     </behaviors>
</system.serviceModel>

Я получаю исключение при вызове службы:

Операция «Метод1» контракта endpoint address = "" binding = "webHttpBinding" bindingNamespace = "https: // mydomain / myservice / services" ...

Развернутая служба wcf (.net 4.0). Конфигурация стороны службы выглядит так:

<endpoint address="" 
          binding="webHttpBinding" 
          bindingNamespace="https://mydomain/myservice/services"     
          behaviorConfiguration="WebBehavior"
          contract="MyService" />

<endpointBehaviors>
  <behavior name="WebBehavior">
    <webHttp />
  </behavior>
</endpointBehaviors>

Попытка использовать службу в веб-приложении, web.config выглядит так:

<system.serviceModel>
    <client>      
        <endpoint name="MyServiceEndpointBasicHttp" 
                  address="http://myDomain/myService"
                  binding="webHttpBinding" behaviorConfiguration="webBehavior" 
                  contract="MyNamespace.IMyService" />
     </client>
     <behaviors>
         <endpointBehaviors>
             <behavior name="webBehavior">
                 <webHttp />       
             </behavior>     
          </endpointBehaviors>
     </behaviors>
</system.serviceModel>

Я получаю исключение при вызове службы:

Операция «Метод1» контракта endpoint address = "" binding = "webHttpBinding" bindingNamespace = "https: // mydomain / myservice / services" ...

Развернутая служба wcf (.net 4.0). Конфигурация стороны службы выглядит так:

<endpoint address="" 
          binding="webHttpBinding" 
          bindingNamespace="https://mydomain/myservice/services"     
          behaviorConfiguration="WebBehavior"
          contract="MyService" />

<endpointBehaviors>
  <behavior name="WebBehavior">
    <webHttp />
  </behavior>
</endpointBehaviors>

Попытка использовать службу в веб-приложении, web.config выглядит так:

<system.serviceModel>
    <client>      
        <endpoint name="MyServiceEndpointBasicHttp" 
                  address="http://myDomain/myService"
                  binding="webHttpBinding" behaviorConfiguration="webBehavior" 
                  contract="MyNamespace.IMyService" />
     </client>
     <behaviors>
         <endpointBehaviors>
             <behavior name="webBehavior">
                 <webHttp />       
             </behavior>     
          </endpointBehaviors>
     </behaviors>
</system.serviceModel>

Я получаю исключение при вызове службы:

Операция «Метод1» контракта "IMyService" указывает несколько параметры тела запроса должны быть сериализован без оболочки элементы. Максимум один параметр тела можно сериализовать без оболочки элементы. Либо убрать лишнее тело параметры или установите BodyStyle собственность на WebGetAttribute / WebInvokeAttribute для

После некоторого поиска в Google мы установили [WebGet (BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Xml)] для методов, но безуспешно ...

Одна интересная вещь : В исключении всегда присутствует одно и то же имя метода, даже если я вызываю другие методы ...

Служба отлично работает в режиме REST при тестировании с помощью браузера путем ввода имени метода и необходимых параметров ...

5
задан decyclone 27 December 2010 в 16:53
поделиться