【问题标题】:Silverlight Cross - Zone WCF accessSilverlight Cross - 区域 WCF 访问
【发布时间】:2010-07-23 13:57:33
【问题描述】:

我需要为 Silverlight 应用程序提供 localhost(自托管)WCF - 服务。该服务将为 Silverlight 应用程序提供各种本地功能(旧的东西,但也可以访问高级硬件设备)。

想象以下情况:

客户需要在本机模式下使用 POS - 打印机,但应用程序必须是 Silverlight 应用程序(这是要求的一部分,不能讨论和/或更改 - 这有很好的理由!) .

所以我创建了 clientaccesspolicy.xml 和 crossdomain.xml,但现在我发现所谓的“跨区域” - 不允许调用。

SL - 应用程序将托管在服务器场上(显然与“localhost”不在同一区域),而服务本身必须绝对在 localhost 上运行。

有什么方法可以激励 Silverlight 允许我从位于 Internet 上的应用程序调用 localhost 上的服务?

【问题讨论】:

    标签: silverlight wcf localhost


    【解决方案1】:

    请看下面的VS项目:

    http://cid-a971dd3af5c625e1.office.live.com/browse.aspx/.Public/SL%5E_DirectPrinting

    当 SL 没有打印功能时,这只是一个愚蠢的概念证明。

    Silverlight 4 具有打印功能,还可以使用 com 互操作。

    COM interop 仅适用于 Windows,我相信自托管 wcf 也是如此,因为它需要安装完整的 .NET 框架。

    对于自托管,关键是能够为 clientaccesspolicy.xml 提供服务。

    该链接包含一个带有 VS2008 解决方案的 zip 文件。

    压缩文件包含3个项目:

    •HostGateway.Win – 一个 Windows 窗体应用程序,它公开用于打印和提供客户端访问策略文件的服务。 •HostGateway.SL/SL.Web – 一个简单的 Silverlight 应用程序,用于测试整个想法。

    HostGateway.Win 项目的一些信息: - Printer.cs 负责实际打印的类。来自 MSDN 站点的真正基本的东西。 - PolicyRetriever.cs 提供 clientaccesspolicy.xml 文件的服务 - clientaccesspolicy.xml 内容存储为资源。 - PrinterGateway.cs 处理打印请求的服务。 - Form1.cs 承载 WCF 服务的表单。

    这两个服务都只通过代码配置。

    还有一些关于 HostGateway.SL 项目的信息: - 包含对 PrinterGateway 服务的服务引用。 - MainPage 使用服务,也仅由代码配置。

    要测试应用程序,您应该:

    • 设置默认打印机;
    • 启动 HostGateway.Win 应用程序;
    • 启动 Silverlight 应用程序;
    • 在文本上输入一些内容;
    • 按下打印按钮;
    • 焦急地等待打印机是否打印。

    如果您决定对此进行测试,请确保 win 应用程序正在运行,然后再尝试与其对话。

    如果对策略文件的请求失败,Silverlight 将不会重试。这意味着要让 SL 重新连接到服务,必须重新启动 SL 应用程序。

    我希望这会有所帮助。

    以下链接包含有关自助托管的信息:

    http://blogs.msdn.com/b/carlosfigueira/archive/2008/03/07/enabling-cross-domain-calls-for-silverlight-apps-on-self-hosted-web-services.aspx http://www.code-magazine.com/article.aspx?quickid=0701041&page=1

    【讨论】:

      猜你喜欢
      • 2011-07-25
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      相关资源
      最近更新 更多