代码之家  ›  专栏  ›  技术社区  ›  Turing Complete

Silverlight跨区域WCF访问

  •  0
  • Turing Complete  · 技术社区  · 15 年前

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

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

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

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   Klinger    15 年前

    请看一下以下VS项目:

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

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

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

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

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

    有关HostGateway.Win项目的一些信息: -Printer.cs负责实际打印的类。从MSDN网站上得到的最基本的东西。 -提供clientaccesspolicy.xml文件的PolicyRetriever.cs服务 -clientaccesspolicy.xml内容存储为资源。

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

    -MainPage使用服务,也仅通过代码配置。

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

    • 设置默认打印机;
    • 在课文上打一些东西;
    • 焦急地等着看打印机是否打印出来。

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

    我希望这有帮助。

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

    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