如何从另一个WebApp访问RIA Services WCF WebApp?

时间:2014-05-05 22:47:34

标签: c# wcf silverlight wcf-ria-services

我有一个Silverlight应用程序,它通过RIA服务从服务器中的WCF应用程序访问其数据。目前的结构如下:

  • DataWebServer - 一个Web应用程序项目,它包含.aspx页面,该页面将调用Silverlight组件,.edmx模型文件和MyService类,继承自LinqToEntitiesDomainService。

  • Silverlight App - 包含.xaml e .cs文件,这些文件将生成由WebServer托管的.xap二进制文件。它通过RIA Services访问“DatawebServer”项目。

一切正常,但现在我需要创建一个新的应用程序,因为我们将需要它在平板电脑和智能手机等平台上运行,我们决定用HTML5而不是Silverlight构建它。

如何让这个新的WebApp访问“DataWebServer”项目中的数据实体?

我想到了3种不同的解决方案,但我会考虑第三种解决方案,这完全是我的问题。

  • 我可以将新的WebApp放在同一个webprojeect“DataWebServer”的文件夹中,但这不是很有条理,我宁愿将此应用程序与“DataWebServer”分开。

    < / LI>
  • 第二种选择,如果我不能与第三种方法相提并论,我将在“DataWebServer”中创建WebMethods,以便从我的新WebApp访问。

  • 第三个,我不知道该怎么做,就是让我的新Web应用程序通过RIA服务访问实体,就像Silverlight客户端一样。我搜索了互联网,但我发现的所有文章都展示了如何从同一个项目访问RIA服务。有谁知道我怎么做?

1 个答案:

答案 0 :(得分:1)

第一种方法是最明智的。

根据您的详细信息,我认为DataWebServer是“公开”可访问的;至少和WebApp一样多。将WebApp数据请求发送到其他服务器DataWebServer几乎没有价值,因为这会在一个Web服务器调用另一个服务器时引入不必要的延迟。不是重新使用DataWebServer中的HTTP服务,而是将WebApp功能添加到DataWebServer重新使用LinqToEntities上下文

如果您非常想要第三个选项,则应考虑以应用程序中的JavaScript调用WebApp来自客户端浏览器的数据的方式创建DataWebServer。重要的是,这种方法可以避免WebApp Web服务器调用DataWebServer数据。