2010-10-01 9 views
0

J'essaye de lire un fichier XML dans le service RIA et j'obtiens l'erreur suivante.Comment lire un fichier XML à partir d'un chemin relatif dans le service RIA?

L'opération de chargement a échoué pour la requête 'GetSummaryList'. Impossible de trouver une partie du chemin 'C: \ WINDOWS \ SYSTEM32 \ CoreResources \ SumaryListDS.xml'. J'utilise Silverlight 4 qui utilise le service RIA. J'essaie de lire le SumaryListDS.xml situé dans le dossier bin \ CoreResources. Mais l'application s'est mise à chercher le fichier sous bin \ CoreResources, essayant de le lire depuis C: \ WINDOWS \ SYSTEM32 \ CoreResources. Je me demandais juste comment lire un fichier en utilisant un chemin relatif dans RIA Service avec frontal Silverlight?

Merci, Vinod

Répondre

0

Voici comment je résolu mon problème. Il a été implémenté dans l'une des couches du niveau métier, qui peut être utilisé par une variété de clients (ASP.NET, Console App, Windows Client, Silverlight hébergé dans ASP.NET). Alors, quand GetSummaryXml est appelé, auparavant, il était autrefois

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

j'ai commencé à obtenir une erreur lorsque j'ai commencé à consommer dans RIA DomainService être utilisé par le client Silverlight 4.

ERREUR:

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

Mais SumaryListDS.xml situé dans le bac \ CoreResources, pas WINDOWS \ system32 \ CoreResources

Je modifié 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; 
} 

Et maintenant ça marche bien. Je ne suis pas sûr si c'est une solution parfaite pour toi.

0

Vous devriez pouvoir utiliser .. pour monter un répertoire, comme ../CoreResources/GetSummaryList.xml

Questions connexes