2009-05-07 4 views
1

J'ai créé une application de navigateur WPF que je souhaite connecter à un service WCF. Le service est dans la même solution que l'application WPF. Il est le service par défaut que Visual Studio crée avec une méthode appelée GetData (int)WPF à WCF Problème d'autorisation

Je tente d'appeler ce service avec le code suivant:

var client = new Service1.Service1Client(); 
client.GetData(10); 

Je reçois l'erreur suivante sur la ligne ci-dessus (client.GetData (10);)

{"Request for the permission of type 'System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed."} 

S'il vous plaît aider

+0

Cela fonctionne-t-il si vous exécutez en tant qu'administrateur? ouvrez le répertoire bin/debug et cliquez avec le bouton droit de la souris, Exécuter en tant qu'administrateur sur le fichier .exe – bendewey

Répondre

3

Cette solution de Scott Lanford a fonctionné pour moi:
http://www.codeexperiment.com/post/Debugging-XBAPWCF-Applications.aspx

Quote:
Les raisons possibles de cette erreur sont nombreux mais dans ce cas, il est parce que la valeur par défaut Debug-> Action de démarrage pour un Le projet XBAP est "Démarrer le navigateur dans l'URL", où l'URL pointe simplement vers le fichier .xbap sur le disque (par exemple C: \ projects \ monprojet \ bin \ debug \ monprojet.xbap).

Pour qu'une application XBAP de confiance partielle communique avec un service WCF, elle doit être déployée à partir du même domaine et du même port que le service WCF. Le moyen de résoudre ce dilemme consiste à simuler l'URL XBAP en démarrant l'application XBAP avec PresentationHost.exe et en fournissant l'URL XBAP (copiée à partir de la valeur "Démarrer le navigateur avec URL") via le paramètre debug et l'URL du service WCF via le fichier debugSecurityZoneURL paramètre.

Par exemple, les options de débogage pour votre projet XBAP devrait ressembler à ceci:

action Démarrer -> Démarrer programme externe = % windir% \ system32 \ PresentationHost.exe

Démarrer options -> arguments de ligne de commande = -debug "c: \ projects \ MyProject \ bin \ debug \ MyProject.xbap" -debugSecurityZoneUrl "http://localhost:2022"