2013-03-06 4 views
7

Qui sto chiamando il metodo dal servizio RESTful ospitato nel browserContrastampa di filtro su EndpointDispatcher?

https://eshop/LinkService/LinkService.svc/GetStudentObj 

e ottenere il seguente errore di file

The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None) 

Config

<system.serviceModel> 
    <services> 
     <service name="LinkService.LinkService" behaviorConfiguration="MyServiceBehavior"> 
     <endpoint address="" binding="webHttpBinding" bindingConfiguration="https" contract="LinkService.ILinkService" /> 
    <endpoint contract="IMetadataExchange" binding="mexHttpsBinding" address="mex" /> 
     </service> 
    </services> 
    <bindings> 
     <webHttpBinding> 
     <binding name="https"> 
      <security mode="Transport"> 
      <transport clientCredentialType="None" /> 
      </security> 
     </binding> 
     </webHttpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyServiceBehavior"> 
      <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
      <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"/> 
      <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     </serviceBehaviors> 
     <endpointBehaviors> 
     <behavior name="web"> 
      <webHttp/> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true"/> 
    <standardEndpoints> 
     <webHttpEndpoint> 
     <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/> 
     </webHttpEndpoint> 
    </standardEndpoints> 
    </system.serviceModel> 

e

public Student GetStudent() 
     { 
      Student stdObj = new Student 
      { 
       StudentName = "Bala", 
       Age = 29, 
       Mark = 95 
      }; 
      return stdObj; 

     } 

e

[ServiceContract] 
    public interface ILinkService 
    { 
     [OperationContract] 
     [WebInvoke(Method = "GET", UriTemplate = "/GetStudentObj", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json,ResponseFormat = WebMessageFormat.Json)] 
     Student GetStudent(); 
    } 

Qualsiasi suggerimento?

+0

Per quello che vale la pena, questo [risposta] (http://stackoverflow.com/a/31678625/1257607) possono essere utili – DanielV

risposta

14

configurazione aggiungere un comportamento in <endpoint address /> tag

<endpoint address="" binding="webHttpBinding" bindingConfiguration="https" contract="LinkService.ILinkService" behaviorConfiguration="web"/> 
+0

Questo q e indirettamente aiutato io, così upvotes tutto intorno. – MrBoJangles