Вот как я решил свою проблему.Он реализован на одном из уровней бизнес-уровня, который может использоваться различными клиентами (ASP.NET, консольное приложение, клиент Windows, Silverlight, размещенный в ASP.NET).Поэтому, когда вызывается GetSummaryXml, ранее он был
public DataSet GetSummaryXml()
{
var dsReport = new DataSet("Report");
var summaryListXmlPath = "CoreResources/SumaryListDS.xml";
dsReport.ReadXml(summaryListXmlPath);
return dsReport;
}
. Я начал получать сообщение об ошибке, когда начал использовать его в RIA Domain Service для использования клиентом Silverlight 4.
ОШИБКА:
Операция загрузки не выполнена для запроса 'GetSummaryList'.Не удалось найти часть пути 'C: \ WINDOWS \ SYSTEM32 \ CoreResources \ SumaryListDS.xml'.
Но SumaryListDS.xml находится в папке \ 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;
}
И теперь он работает нормально.Я не уверен, что это идеальное решение для тебя.