2009-06-20 13 views
7

Je crée un service de données rapide dans WCF accessible à une application publique Silverlight 2.0. Comme mes données sont très statiques et relativement simples, je voudrais juste les stocker dans des fichiers XML locaux (ce qui est rendu plus facile car il y a un nombre TRÈS limité de personnes qui pourront les éditer).Chemin d'accès relatif dans le service WCF hébergé dans IIS

Je me demande quelle sera la meilleure façon de trouver un chemin relatif à partir de mon service. En ASP.NET traditionnel je pourrais utiliser le Server.MapPath .... dans ce service de WCF rien de semblable n'est disponible. Cette solution sera finalement hébergée chez un fournisseur d'hébergement que je n'ai aucun contrôle, donc je ne peux pas coder en dur les emplacements fixes. Je préférerais juste obtenir un chemin relatif à certains fichiers XML dans mon dossier AppData.

Des suggestions?

Répondre

11

Vous pouvez essayer d'utiliser Environment.CurrentDirectory ou

AppDomain.CurrentDomain.BaseDirectory
+4

AppDomain.CurrentDomain.BaseDirectory renvoie le chemin correct. Mais Environment.CurrentDirectory semble retourner un chemin dans le dossier {program files}. Merci de votre aide. –

2

Les services WCF ont encore accès à beaucoup des mêmes choses que vos pages ASP.NET (puisque, à la fin il y a encore un Requête HTTP et réponse). Vous pouvez toujours utiliser Server.MapPath comme ceci:

HttpContext.Current.Server.MapPath(...) 
+1

Cela ne fonctionnera que si vous activez le mode de compatibilité ASP.NET et si vous ne souhaitez pas transférer un service Web ASMX existant vers WCF, il y a rarement une raison de le faire. –

0

D'abord, ajoutez une opération au service de retourner le répertoire courant. Avoir la nouvelle opération juste retourner Environment.CurrentDirectory. Dans le client, vérifiez si vous êtes surpris par le répertoire actuel. Ajuster au besoin.

1

Vous pouvez stocker les fichiers dans IsolatedStorage au lieu de dans votre dossier pour l'application. Regardez l'exemple sur la page liée pour voir comment cela fonctionne.

Questions connexes