【问题标题】:How can I use ServiceHost (System.ServiceModel) in Silverlight 4? (c#)如何在 Silverlight 4 中使用 ServiceHost (System.ServiceModel)? (C#)
【发布时间】:2011-11-03 01:17:50
【问题描述】:

我正在尝试在 Silverlight 应用程序中使用 WCF 示例(我想接受在 Sliverlight Bing 地图上插入数据点的请求。

我是 Silverlight 和 .NET 的新手。到目前为止,我有一个 Bing 地图并且可以添加图钉。我想要的是接受进程间通信以插入来自另一个应用程序的图钉。

按照 WCF 上的一些 Web 示例,我尝试使用 ServiceHost (System.ServiceModel),但显然这在 silverlight 应用程序中不可用?

我很困惑。如何将数据获取到 silverlight 应用程序?

这是一个非常简单的示例 - 我要做的就是在纬度/经度处添加一个图钉。

编辑

当不同的进程更新/通知某个位置的某些事件时,我正在尝试将图钉/数据添加到 Bing 地图(silverlight 应用程序)。我现在明白 silverlight 是客户端计算机的本地设备并且是沙盒的 - 但我仍然需要以某种方式在客户端上触发一些事件到 silverlight 应用程序。

【问题讨论】:

    标签: .net silverlight wcf bing-maps


    【解决方案1】:

    你需要以另一种方式工作-

    ServiceHost 旨在“托管”服务 - 它是创建 WCF 连接的服务器端的原因。 Silverlight,鉴于其沙盒,只能充当服务客户端

    您的其他进程将需要使用ServiceHost。然后它可以向您的 Silverlight 客户端提供数据(客户端可以连接并请求它们)。

    【讨论】:

    • 我的 silverlight 应用程序需要收到事件/请求/发生的事情的通知。我如何从客户端到 wcf 再到 silverlight?我无法想象我想在 silverlight 应用程序中投票...
    • @Tim 您可以轮询,或者(更好地)查看双工连接、回调或事件。我建议阅读:msdn.microsoft.com/en-us/magazine/cc163537.aspx
    【解决方案2】:

    Silverlight 在网络浏览器中本地运行。出于安全原因,它被沙盒化。 Silverlight 应用程序本身不能充当 Web 服务。但是,它可以与其他 Web 服务通信,这些服务通常运行在将 Silverlight 应用程序提供给客户端浏览器的同一台服务器上。一个常见的选择是使用完整(非 Silverlight).NET 框架编写的 WCF Web 服务。

    另一个应用程序可以与 Silverlight 客户端也在使用的服务器上的 Web 服务通信。您可以通过这种方式交换数据。

    【讨论】:

    • 但是 WCF 服务如何将事件通知到 silverlight 实例/应用程序?
    • 轮询将是最简单的方法。 WCF 中还有双工通信,这将允许一种“推送”通知。见:msdn.microsoft.com/en-us/library/cc645027(v=vs.95).aspx
    • (我想我应该向上滚动以查看具有相同建议的其他答案...)
    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多