【问题标题】:Exposing a webHttpBinding WCF service to mobile clients向移动客户端公开 webHttpBinding WCF 服务
【发布时间】:2010-09-26 23:47:03
【问题描述】:

我创建了一个非常基本的服务操作,需要将内容写入我的数据库。该服务如下所示:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceBehavior(IncludeExceptionDetailInFaults = false)]
public class myService : ImyService
{
  public MyServiceResult MyMethod(string p1, string p2)
  {
    try
    {
      // Do stuff
      MyResponseObject r = new MyResponseObject();
      r.Property1 = DateTime.Now;
      r.Property2 = "Some other data";
      return r;
    }
    catch (Exception ex)
    {
      return null;
    }
  }
}

ImyService 的定义如下所示:

[ServiceContract]
public interface ImyService
{
  [OperationContract]
  [WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped)]
  MyServiceResult MyMethod(string p1, string p2);
}

此服务将同时提供给 WP7 和 iPhone 客户端应用程序。正因为如此,我相信我需要使用 webHttpBinding。这导致我在 web.config 文件中使用以下设置:

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

  <serviceHostingEnvironment 
    aspNetCompatibilityEnabled="true"   
    multipleSiteBindingsEnabled="true" />
  <services>
    <service name="myService">
      <endpoint address="" 
        behaviorConfiguration="myServiceBehavior" 
        binding="webHttpBinding" 
        contract="ImyService" />
    </service>
  </services>
</system.serviceModel>

服务和 WP7 应用程序都是同一解决方案的一部分。我可以在我的应用程序中成功添加对服务的引用。但是,当我运行应用程序时,引用该服务的页面会引发错误。错误说:

在 ServiceModel 客户端配置部分中找不到引用合同“MyServiceProxy.ImyService”的默认端点元素。这可能是因为找不到您的应用程序的配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。

我做错了什么?看起来这应该是一件非常简单的事情。感谢您的帮助。

【问题讨论】:

    标签: silverlight wcf windows-phone-7


    【解决方案1】:

    您是否已将文件“ServiceReferences.ClientConfig”复制到您的 Windows Phone 7 项目中?此文件位于您的 WCF 项目中。此外,WP7 客户端仅支持 basicHttpBinding。因此,除非您切换到 basicHttpBinding,否则您可能会看到一个空的“ServiceReferences.ClientConfig”文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      相关资源
      最近更新 更多