在Windows应用程序中使用WCF服务?

时间:2011-08-08 17:34:07

标签: jquery asp.net wcf window

我在项目中创建了WCF服务。现在使用Jquery我成功地能够使用服务,但是当我尝试在Windows应用程序中添加服务作为Web引用时,我无法调用它。如果我创建简单的服务,我可以在Windows应用程序中成功调用,但是如果我做了更改来调用jquery服务,我通过Google搜索找到了这个服务。我不知道我在哪里失踪。

下面是代码,我已经完成了。 这是WCF的接口。

[ServiceContract]
public interface ITestService
{
    [OperationContract]
    void DoWork();

    [OperationContract]
    [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]    
    string HelloWorld();
}

类调用接口

    public class TestService : ITestService
{
    public void DoWork()
    {
    }


    public string HelloWorld()
    {
        return "Hello World";
    }
}

}

这是应用程序的Web配置。

<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior name="TestWCFBehavior">
                <serviceMetadata httpGetEnabled="true"/>
                <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
        </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="TestWCFBehavior">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>

    <!--<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />-->
  <services>
    <service name="WebAppWithWCF.TestService" behaviorConfiguration="TestWCFBehavior">
      <endpoint address="" binding="webHttpBinding" contract="WebAppWithWCF.ITestService" behaviorConfiguration="TestWCFBehavior"/>
    </service>
  </services>
</system.serviceModel>

我做了一些尝试和错误,但直到现在都找不到方法......

请帮助......如果我方遗漏任何信息,请告诉我。

1 个答案:

答案 0 :(得分:2)

webHttpBinding不会公开元数据,因此您无法添加对它的引用。

基本上,添加服务引用功能会根据已知的服务(通过元数据 / WDSL公开)生成代理和类。

使用wsHttpBinding或basicHttpBinding的服务都会公开您的服务的元数据。它们通常在您构建.NET到.NET客户端 - 服务器应用程序时使用。

实施两种绑定:WCF Service with webHttpBinding-basicHttpBinding-wcHttpBinding