这是我如何解决我的问题。它已在业务层的一个层中实现,可供各种客户端(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;
}
而且现在它的工作正常。我不确定这是否是完美的解决方案。