這是我如何解決我的問題。它已在業務層的一個層中實現,可供各種客戶端(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;
}
而且現在它的工作正常。我不確定這是否是完美的解決方案。