C# WCF测试客户端提供正确的结果,但在Chrome中执行时不正确

C# WCF测试客户端提供正确的结果,但在Chrome中执行时不正确,c#,wcf,web-services,rest,C#,Wcf,Web Services,Rest,我正在尝试构建我的第一个WCF服务。我现在有以下行为 当我运行我的WCF服务时,我可以发送输入并在测试客户端时获得正确的结果 当我键入http://localhost:12345/Service1.svc进入Chrome,我会得到一个页面 单击svcutil.exehttp://localhost:12345/Service1.svc?wsdl给了我一个XML 然而,当我输入时,我只得到一个空的响应。里面什么都没有,只有带有 namespace WcfService1 { [ServiceC

我正在尝试构建我的第一个WCF服务。我现在有以下行为

  • 当我运行我的WCF服务时,我可以发送输入并在测试客户端时获得正确的结果
  • 当我键入
    http://localhost:12345/Service1.svc
    进入Chrome,我会得到一个页面
  • 单击
    svcutil.exehttp://localhost:12345/Service1.svc?wsdl
    给了我一个XML
  • 然而,当我输入时,我只得到一个空的响应。里面什么都没有,只有带有
    
    
    namespace WcfService1
    {
      [ServiceContract]
      public interface IService1
      {
        [OperationContract]
        [WebGet(UriTemplate = "/test/{indata}", 
          ResponseFormat = WebMessageFormat.Xml)]
        String Ping(String indata);
      }
    }
    
    从我的实现中可以看出,如下所示

    [ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
    public class Service1 : IService1
    

    建议的web.config不起作用,所以我尝试将指针与结合使用来发布元数据(不管是什么)。我的配置文件与后一个链接中的配置文件非常相似(只是我已删除了诊断部分)。

    您可以尝试以下操作:

  • 使用ServiceBehavior属性标记服务实现

    <services>
      <service name="WcfService1.Service1">
        <endpoint binding="webHttpBinding" contract="WcfService1.IService1" />
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior>
          <webHttp />
        </behavior>
      </endpointBehaviors>
     ...
    </behaviors>
    
  • 在web.config中添加/修改以下内容以保留现有数据:

    localhost/Service1.svc/inputData
    
    
    ...
    

  • 这些步骤使其正常工作。

    要使用使REST正常工作,您的web.config需要包含以下内容:

    
    
    要在浏览器中不包含所有xml的情况下获取输出,请添加以下内容:

    
    
    要允许访问服务元数据(需要轻松创建代理),请将以下内容添加到行为元素:

    
    
    就我个人而言,我更喜欢老式配置,即显式配置端点,如下所示:

    
    

    最后,您可以使用WCF服务配置编辑器使用gui进行配置。您可以在VisualStudio的“工具”菜单上找到它。打开后,用它打开项目的web.config并开始编辑。

    我相信WCF测试客户端是在SOAP上运行的。它更多地测试了你在为某件事服务的事实,而不是你在为你想要得到的东西服务

    根据我的经验,你得到的空身体只是一条错误信息。但是,在某些情况下,例如跨域调用(不确定它是否是正确的名称,也不确定它是否是可能问题的完整列表),当您使用JavaScript中的XDomainRequest对象(与通常的XmlHttpRequest相反)时,响应为空是错误消息的结果

    您是否尝试检查状态代码?200行还是更大的

    我相信您已经在社交MSDN上提出了类似的问题,并且在如何形成代码方面存在一些混乱。让我回顾一下下面的要点

    Web.config

    
    ...
    
    服务-描述服务性质的标记内容

    
    
    行为-描述服务和端点行为的标记内容

    
    
    现在可以使用以下URL检索响应


    您的服务是托管在IIS还是控制台应用程序中?
    localhost/Service1.svc/inputData