WCF JSON格式 - 在客户端消费时收到错误消息

时间:2018-02-21 04:22:32

标签: wcf

客户端代码

  1. 我创建了Web应用程序并添加了对客户端项目的服务引用
  2. 我尝试像这样创建一个客户端对象:

    @foreach($allteachers as $teacher)
    
        <tr> 
          <td>{{ $teacher->id}}</td>
          <td>{{ $teacher->name }}</td>
          <td>{{ $teacher->email }}</td>
          <td>
            @if(in_array($teacher->id,$allpermitted))
            <button>Remove</button>
            @else
           <button>give</button>
            @endif
        </td>
    
    @endforeach
    
  3. 但收到错误消息:

      
        
    • 在ServiceModel客户端中找不到引用合同“ServiceReference_test.IService1”的默认端点元素   配置部分。这可能是因为没有配置文件   找到您的应用程序,或者因为没有端点元素匹配   这份合同可以在客户要素中找到。
    •   

    你能不能让我知道我在做什么错,我是WCF的新手,请帮帮我

    返回JSON格式的WCF服务:

     Service1Client a = new Service1Client();
    

    Web.Config文件

    namespace WcfService1
    {
    
        public class Service1 : IService1
        {
    
            public string GetData(string Id)
            {
                return ("You entered: " + Id);
            }
    
    
        }
    }
    
    
    namespace WcfService1
    {
       [ServiceContract]
        public interface IService1
        {
        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate = "/GetData/{Id}",
         RequestFormat = WebMessageFormat.Json,
         ResponseFormat = WebMessageFormat.Json,
         BodyStyle = WebMessageBodyStyle.Wrapped
         )]
            string GetData(string Id);
    
    
            // TODO: Add your service operations here
        }
    
    }
    

1 个答案:

答案 0 :(得分:0)

您应该在客户端 App.config Web.config 中添加以下标记:

<system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="WebHttpBinding" />
      </webHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:8733/Design_Time_Addresses/fine_service/FineService/soap"
          binding="webHttpBinding" bindingConfiguration="WebHttpBinding"
          contract="ServiceReference1.IService1" name="WebHttpBinding" />
    </client>
  </system.serviceModel>

如果您的cofig文件中包含此标记,请确保客户端端点合同名称应与服务端点中的名称相同。在您的情况下,合同名称为IService1

修改 另见this