2010-10-01 53 views
0

我想读取RIA服务中的XML文件,并且出现以下错误。如何从RIA服务中的相对路径读取xml文件?

查询'GetSummaryList'的加载操作失败。找不到路径'C:\ WINDOWS \ SYSTEM32 \ CoreResources \ SumaryListDS.xml'的一部分。

我使用的是使用RIA服务的Silverlight 4。我正在尝试阅读位于bin \ CoreResources文件夹中的SumaryListDS.xml。但是该应用程序在bin \ CoreResources下查找文件,它试图从C:\ WINDOWS \ SYSTEM32 \ CoreResources中读取它。

我只是想知道如何使用Silverlight前端的RIA Service中的相对路径读取文件?

感谢, 维诺德

回答

0

这是我如何解决我的问题。它已在业务层的一个层中实现,可供各种客户端(ASP.NET,控制台应用程序,Windows客户端,ASP.NET中托管的Silverlight)使用。所以,当GetSummaryXml被调用时,以前它曾经是

public DataSet GetSummaryXml() 
{ 
    var dsReport = new DataSet("Report"); 
    var summaryListXmlPath = "CoreResources/SumaryListDS.xml"; 
    dsReport.ReadXml(summaryListXmlPath); 
    return dsReport; 
} 

我开始一个错误,当我开始消费它在RIA领域服务通过Silverlight 4的客户端使用。

错误:

Load operation failed for query 'GetSummaryList'. Could not find a part of the path 'C:\WINDOWS\SYSTEM32\CoreResources\SumaryListDS.xml'.

但SumaryListDS.xml位于bin \ CoreResources,不WINDOWS \ SYSTEM32 \ CoreResources

所以我修改GetSummaryXml到...

public DataSet GetSummaryXml() 
{ 
    var dsReport = new DataSet("Report"); 
    var currContext = HttpContext.Current; 
    var summaryListXmlPath = "CoreResources/SumaryListDS.xml"; 
    if (currContext != null) 
     summaryListSchemaPath = currContext.Server.MapPath(@"../bin/" + summaryListXmlPath); 
    dsReport.ReadXml(summaryListXmlPath); 
    return dsReport; 
} 

而且现在它的工作正常。我不确定这是否是完美的解决方案。

0

你应该能够使用..去了一个目录,如../CoreResources/GetSummaryList.xml

相关问题