我在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)
所以请帮助我任何人。
答案 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网站,可能会更有意义。
RiaServices.web
项目中。选择添加新项。选择左侧的数据。选择右侧的 ADO.Net实体数据模型。我将假设它被称为此示例的默认Model1.edmx
。将它连接到数据库表等。RiaServices.web
项目中创建引用EDMX模型的域名服务。选择添加新项。选择左侧的 Web 。选择右侧的域服务类。我将假设它被称为DomainService1.cs
这个例子。通过勾选复选框,从添加新域服务类弹出窗口中选择数据项。将为您选择的每个项目创建一组RIA服务对象和方法。直接从您的Silverlight代码中使用RIAServicesLibrary1
客户端对象(在此示例中称为DomainService1),如下所示:
DomainService1 client = new DomainService1();
或使用Data Sources
窗口将新网格等拖放到页面上。
如果Data Sources
窗口不可见,请选择“数据”菜单,然后选择“显示数据源”选项。
有关详细信息,请尝试以下Microsoft链接:Using WCF RIA Services