将Silverlight4应用程序与asp.net应用程序集成

时间:2011-07-15 09:33:00

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

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

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

Microsoft JScript运行时错误:Silverlight应用程序加载操作中的未处理错误对于查询“GetQuestions”失败。远程服务器返回错误: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)

所以请帮助我任何人。

1 个答案:

答案 0 :(得分:1)

您的RIA Services DomainService有两部分。您已经通过复制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实体数据模型。我将假设它被称为此示例的默认Model1.edmx。将它连接到数据库表等。
  3. 构建项目,以便下一步找到您的数据模型。
  4. RiaServices.web项目中创建引用EDMX模型的域名服务。选择添加新项。选择左侧的 Web 。选择右侧的域服务类。我将假设它被称为DomainService1.cs这个例子。通过勾选复选框,从添加新域服务类弹出窗口中选择数据项。将为您选择的每个项目创建一组RIA服务对象和方法。
  5. 将对客户端Ria服务库项目( RIAServicesLibrary1 )的引用添加到Silverlight应用程序。
  6. 向您的托管Web应用程序(例如您的ASP.Net网站)添加对Web RIA服务库项目( RIAServicesLibrary1.Web )的引用。
  7. 将RIAServicesLibrary1.Web / app.config文件中的各个部分复制/合并到< webapplication> /web.config文件中。这将包括任何连接字符串和模块部分。
  8. 再次构建项目,以便“数据源”窗口将显示您的新域上下文数据源。
  9. 直接从您的Silverlight代码中使用RIAServicesLibrary1客户端对象(在此示例中称为DomainService1),如下所示:

    DomainService1 client = new DomainService1();

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

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

    有关详细信息,请尝试以下Microsoft链接:Using WCF RIA Services