【问题标题】:Integrate Silverlight4 application with asp.net application将 Silverlight4 应用程序与 asp.net 应用程序集成
【发布时间】:2011-07-15 09:32:59
【问题描述】:

我在 silverlight4 中制作了一个应用程序,并使用 EDM 和 WCF-RIA 进行数据库访问。

现在我想将此应用程序集成到 asp.net 项目中,当我将它集成到 ASP.net 项目中时,它给出了这个异常-

Microsoft JScript 运行时错误:查询“GetQuestions”的 Silverlight 应用程序加载操作中出现未处理错误。远程服务器返回错误:NotFound。在 System.ServiceModel.DomainServices.Client.OperationBase.Complete(异常错误) 在 System.ServiceModel.DomainServices.Client.LoadOperation.Complete(异常错误) 在 System.ServiceModel.DomainServices.Client.DomainContext.CompleteLoad(IAsyncResult asyncResult) 在 System.ServiceModel.DomainServices.Client.DomainContext.c_DisplayClass1b.b_17(Object )

所以请任何人帮助我。

【问题讨论】:

  • 如何将服务器端 RIA 服务 SERVER-SIDE 代码添加到 ASP.Net 应用程序中?
  • 我刚刚在 asp.net 应用程序中添加了 .xap 文件,并复制了 silverlight 应用程序的(仅正文部分).aspx 页面的代码并将其粘贴到 asp.net .aspx 页面中,但我没有不知道如何在 asp.net 应用程序中添加域服务文件??

标签: asp.net silverlight-4.0 ria wcf-ria-services


【解决方案1】:

您的 RIA 服务 DomainService 有 2 个部分。您已经通过复制 XAP 文件复制了客户端部分,但是您缺少服务的 RIA WCF 服务器端部分。

您需要将域服务文件从原始 Silverlight 网站移动到新的 ASP.Net 项目(以及正确连接它所需的任何 web.config 设置)。 这不在 ASPX 文件中。没有看到您现有项目的细节,我无法准确告诉您需要迁移哪些文件名。

我的建议是始终创建 RIA 服务库,而不是直接添加到 Silverlight 应用程序。然后您可以将客户端库链接到任意数量的 Silverlight 应用程序,然后将 RIA 库的 .Web 部分链接到您的网站以提供 WCF 服务。关键还是要迁移配置设置。

如果您创建一个新的 RIA 服务库项目,添加您的 EDM 等,然后将两部分链接到单独的 Silverlight 应用程序和您的新 ASP.net 网站,这可能会更有意义。

一步一步:

  1. 通过选择添加新项目创建 RIA 服务库项目。选择左侧的 Silverlight。选择右侧的WCF RIA 服务类库。我假设它被称为此示例的默认名称 RIAServicesLibrary1。它将创建一个名为 RIAServicesLibrary1 的 Silverlight 客户端库和一个名为 RIAServicesLibrary1.Web 的标准 .Net 库,供 Web 服务器使用。
  2. 将您的 EDMX 添加到 RiaServices.web 项目。选择添加新项目。选择左侧的数据。选择右侧的ADO.Net Entity Data Model。我假设在这个例子中它被称为默认的Model1.edmx。将其连接到您的数据库表等。
  3. 构建您的项目,以便下一步找到您的数据模型。
  4. 在您的RiaServices.web 项目中创建一个引用您的EDMX 模型的域服务。选择添加新项目。选择左侧的Web。选择右侧的域服务类。对于这个例子,我假设它被称为DomainService1.cs。通过勾选复选框,从 Add New Domain Service Class 弹出窗口中选择您的数据项。将为您选择的每个项目创建一组 RIA 服务对象和方法。
  5. 向您的 Silverlight 应用程序添加对客户端 Ria 服务库项目 (RIAServicesLibrary1) 的引用。
  6. 将 Web RIA 服务库项目 (RIAServicesLibrary1.Web) 的引用添加到您的托管 Web 应用程序(例如您的 ASP.Net 网站)。
  7. 将 RIAServicesLibrary1.Web/app.config 文件中的各个部分复制/合并到您的 /web.config 文件中。这将包括任何连接字符串和模块部分。
  8. 再次构建项目,以便数据源窗口将看到您的新域上下文数据源。
  9. 直接从您的 Silverlight 代码中使用 RIAServicesLibrary1 客户端对象(在本例中称为 DomainService1),如下所示:

    DomainService1 客户端 = new DomainService1();

或使用Data Sources 窗口将新网格等拖放到页面上。

如果Data Sources 窗口不可见,请选择“数据”菜单,然后选择“显示数据源”选项。

欲了解更多信息,请尝试此 Microsoft 链接:Using WCF RIA Services

【讨论】:

  • 感谢您的回复,但仍然是如何创建 RIA 服务库以及我在哪里包含此库。我的主要座右铭是在 asp.net 项目中使用 silverlight 应用程序,并且 silverlight 应用程序将使用域服务进行数据访问。所以请根据您的 RIA 服务库向我解释执行这些操作的方法。
  • @Pappu:为您更新了答案。如果您需要更多详细信息,请告诉我哪些具体区域。
  • 是的,我已经按照你提到的方式完成了我的应用程序,一切正常,但是当我想用我现有的项目(ASP.net)添加这个应用程序时问题就开始了,那就是抛出我提到的异常。所以我的意思是如何将 Sl 应用程序的这些域服务类添加到 ASP.net 项目中,因为我刚刚将 .xap 复制到了 Asp.net 项目中..那么现在该怎么办??跨度>
  • @Pappu:听起来你仍然只做了一半的步骤。您是否在 ASP.net 网站上添加了对 RIA 服务“.web”项目的引用?您是否已将 RIA ".web" 项目的 app.config 中的配置设置添加到您的 ASP.Net 网站的 web.config 中?
  • 请帮我如何添加这些东西?我是 Silverlight 的新手。
猜你喜欢
  • 2010-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 2011-07-25
  • 1970-01-01
相关资源
最近更新 更多