2010-10-08 2 views
0

Je dispose d'un ensemble de services NetTCP configurés qui s'exécutent sous un service Windows pour la production, mais j'utilise une application console pour les faire tourner à des fins de débogage. Avec Windows Vista, j'ai désactivé le UAC parce qu'il était agaçant, mais j'essaie de le laisser activé avec 7 parce qu'il fait tout ce que je veux tout en étant très calme et pas nuls.Débogage des services WCF NetTCP avec UAC

La question que je courais en est en cours d'exécution VS en mode « standard » (c.-à ne pas utiliser Exécuter en tant qu'administrateur) les services ne tourne pas parce qu'il dit ceci:

« Le critère d'évaluation de service n'a pas pu écouter sur l'URI 'net.tcp: // localhost: 60000/[ServiceName]' car l'accès a été refusé Vérifiez que l'utilisateur actuel dispose d'un accès dans la section allowedAccounts appropriée de SMSvcHost.exe.config. " Après un peu de recherche, j'ai pu trouver ce fichier et le modifier avec le SID de mon compte d'utilisateur. La configuration ressemble à ceci:

<?xml version="1.0" encoding="utf-8"?><configuration> 
<runtime> 
    <gcConcurrent enabled="false" /> 
    <generatePublisherEvidence enabled="false" /> 
</runtime> 

<system.serviceModel.activation> 
    <net.tcp listenBacklog="10" maxPendingConnections="100" maxPendingAccepts="2" receiveTimeout="00:00:10" teredoEnabled="false"> 
     <allowAccounts> 
      <add securityIdentifier="S-1-5-21-XXXXXXX"/> 
     </allowAccounts> 
    </net.tcp> 
    <net.pipe maxPendingConnections="100" maxPendingAccepts="2" receiveTimeout="00:00:10"> 
     <allowAccounts> 
      <add securityIdentifier="S-1-5-21-XXXXXXX"/> 
     </allowAccounts> 
    </net.pipe> 
    <diagnostics performanceCountersEnabled="true" /> 
</system.serviceModel.activation></configuration> 

Le SID est venu de l'outil emballé dans la Sysinternals suite et a été validé contre ADSI Edit Je sais donc qu'il est correct. Après un redémarrage, les services ne fonctionneront toujours pas et j'essaie d'éviter de le forcer à fonctionner en mode administratif, car vous ne pouvez plus cliquer deux fois sur des fichiers de solution ou de projet, ce qui est plutôt irritant.

Vous avez des idées? Le fichier SMSvcHost.exe.config provient de "C: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation" et bien que j'utilise x64, l'application est compilée en mode x86. Je ne suis pas sûr si c'est là que mes ennuis se trouvent?

Répondre

1

Pour trouver l'emplacement du fichier de configuration «correct», procédez comme suit: Localisez NetTcpPortSharing dans l'onglet serivce du Gestionnaire des tâches. Cliquez sur Aller au processus dans le menu contextuel. Cliquez sur Ouvrir l'emplacement du fichier.

ps. sur mon emplacement Windows 2008 R2 x64 avec .NET 4 est C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319