2017-06-10 7 views
0

J'ai créé le service REST WCF qui renvoie le format JSON. Ma question était "Je suis incapable de trouver ma méthode de contrat d'exploitation dans un navigateur?" enter image description hereComment appeler la méthode de service WCF REST dans un navigateur

Ci-dessous mon contrat de service

using System.ServiceModel; 
using System.ServiceModel.Web; 
namespace WcfService1 
{ 

    [ServiceContract] 
    public interface IService1 
    { 

      [OperationContract] 
      WcfService1.Service1.Person GetData(string id); 

    } 


} 

Service1.svc.cs

using System.ServiceModel; 
using System.ServiceModel.Web; 
using System.Text; 

namespace WcfService1 
{ 

    public class Service1 : IService1 
    { 
     [WebInvoke(Method = "GET", 
        ResponseFormat = WebMessageFormat.Json, 
        UriTemplate = "data/{id}")] 
     public Person GetData(string id) 
     { 
      // lookup person with the requested id 
      return new Person() 
      { 
       Id = Convert.ToInt32(id), 
       Name = "Leo Messi" 
      }; 
     } 


     public class Person 
     { 
      public int Id { get; set; } 
      public string Name { get; set; } 
     } 
    } 
} 

Ci-dessous était un EndPoint

<system.serviceModel> 
    <services> 
     <service name="WcfService1.Service1"> 
     <endpoint address="http://localhost:62030/Service1.svc" binding="webHttpBinding" contract="WcfService1.IService1"/> 
     </service> 
    </services> 
    <client> 
     <endpoint name="JsonService1" address="http://localhost:62030/Service1.svc" binding="webHttpBinding" contract="WcfService1.IService1"></endpoint> 
    </client> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <!-- To avoid disclosing metadata information, set the values below to false before deployment --> 
      <serviceMetadata httpGetEnabled="true" 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="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <protocolMapping> 
     <add binding="webHttpBinding" scheme="https" /> 
    </protocolMapping>  
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="false" /> 
    </system.serviceModel> 

Répondre

0

j'avais résolu en ajoutant ci-dessous dans Fsactory service1.cs

Factory="System.ServiceModel.Activation.WebServiceHostFactory" 

Service1.cs

<%@ ServiceHost Language="C#" Debug="true" Service="WcfService1.Service1" CodeBehind="Service1.svc.cs" Factory="System.ServiceModel.Activation.WebServiceHostFactory" %> 

Json sortie: enter image description here