2010-02-09 24 views
2

Je rencontre un problème étrange: J'appelle une opération WCF de mon client. L'opération supprime tous les fichiers dans un répertoire spécifié et supprime également leur répertoire parent.Exception de sécurité WCF causée par Directory.Delete()

En fait, cela fonctionne. Aucune exception n'est levée et les fichiers dans le dossier et le dossier lui-même sont supprimés avec succès. Mais: le contexte wcf de mon client est invalidé, donc j'ai besoin d'instancier à nouveau le client de service. Si je ne supprime pas le répertoire mais seulement les fichiers dans tout fonctionne bien. En fait, je n'ai aucune idée pourquoi la suppression d'un répertoire a un impact sur le client appelant le service ??!

Merci

Répondre

1

Désolé pour la réponse tardive, mais je viens de perdre un après-midi traitant du même problème. J'ai finalement trouvé le problème à l'appel de Directory.Delete(). Cela fonctionnait correctement, sans exception, etc.

Dans notre cas, nous supprimions un sous-dossier du dossier qui hébergeait le service WCF. D'après ce que je comprends, cela force l'application à recycler, tuant votre session/service etc.

Notre service stockait/supprimait des fichiers, donc nous avons déplacé l'emplacement de stockage de fichier à l'extérieur du dossier des applications et il semble maintenant fonctionner très bien .

Plus d'infos ici:

http://www.geekays.net/post/2008/10/14/ASPNET-webdomain-recycle-on-subfolder-changes.aspx

0

Êtes-vous récupérer une erreur SOAP de votre appel de service lorsque vous supprimez le répertoire ??

Si oui, pouvez-vous activer des informations de débogage détaillées supplémentaires pour savoir exactement quelle est cette erreur sur le serveur?

Vous faites cela en ajoutant un comportement de service à votre config (sur le côté serveur):

<behaviors> 
    <serviceBehavior name="detailedDebugInfo"> 
     <serviceDebug includeExceptionDetailInFaults="True" /> 
    </serviceBehavior> 
</behaviors> 

puis attribuer cette configuration de comportement de service à votre déclaration de service:

<services> 
    <service name="YourService" 
      behaviorConfiguration="detailedDebugInfo"> 

Une fois que vous Pour ce faire, vous devriez récupérer les informations d'exception détaillées d'une exception côté serveur potentiel dans la faille SOAP que vous récupérez sur le client.

+0

Je l'ai fait déjà. Comme je l'ai dit dans mon post original: aucune excécption évidente n'est lancée par le service et le répertoire est supprimé avec succès. – Max