【问题标题】:WCF Service in Silverlight ApplicationSilverlight 应用程序中的 WCF 服务
【发布时间】:2012-07-02 19:38:00
【问题描述】:

我有一个 Silverlight 5 应用程序,它从另一个项目中的启用 Silverlight 的 WCF 服务获取数据(我的解决方案有一个 Silverlight 项目和一个 Web 项目)。有许多类似的帖子,但它们指的是托管在 Web 服务器上的 Web 服务(正确的 Web 服务)。

我知道我必须告诉应用程序在 dev 和 prod 中哪里可以找到服务。在开发中,您通常会有一个端口。我创建服务客户端的代码(使用正确的 EndpointAddress)如下:

BasicHttpBinding binding = new BasicHttpBinding(
        Application.Current.Host.Source.Scheme.Equals("https", StringComparison.InvariantCultureIgnoreCase)
        ? BasicHttpSecurityMode.Transport : BasicHttpSecurityMode.None);
binding.MaxReceivedMessageSize = int.MaxValue;
binding.MaxBufferSize = int.MaxValue;
Uri tempUri = new Uri("../PolicyDataService.svc", UriKind.Relative);
EndpointAddress servAddr = new EndpointAddress(tempUri);
PolicyDataServiceClient temp = new PolicyDataServiceClient("BasicHttpBinding_PolicyDataService", servAddr);
return temp;

现在,我哪里出错了?在 dev 中,一切正常,但在 prod 中,该服务永远不会被调用。谢谢!

【问题讨论】:

    标签: wcf silverlight web-services


    【解决方案1】:

    我不确定发生了什么,但如果您还没有尝试,可以尝试以下一些方法:

    1. 浏览到 Prod 上的 svc 文件并确保您可以访问它 (http://yoursite/PolicyDataService.svc)
    2. 将您的代码指向 prod 位置,并确保您可以毫无问题地连接。这样做通常会揭示问题所在,前提是您可以连接。

    由于您使用的是 BasicHttpBinding,因此您不应该遇到绑定的安全问题。我知道这是非常基本的,但必须从某个地方开始。

    【讨论】:

    • 所以为了清楚起见,你说的是在文件系统上有一个 svc,而不是称之为“内存中”。对吗?
    猜你喜欢
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多