2010-10-28 25 views
0

Contexte
Je travaille module AC# qui est responsable d'intégrer notre entreprise avec une entité externe dans le cadre de notre système SOA. L'entité externe fournit des services Web. Ils sont testés à fond car c'est un produit du gouvernement fédéral.
Le module a été développé en utilisant une approche pilotée par les tests, nous utilisons nUnit et tout allait bien pendant le test.

Sécurité
certificats publics est une exigence de base pour se connecter aux services Web. La ligne suivante est utilisée: X509Certificate.CreateFromCertFile ("Application.cer");

Problème
Durant le test, le service Web à distance a été connecté avec succès et les règles métier ont été testées throughly. Les exigences exigeaient que ce module soit utilisé comme une application de service Windows. Après le déploiement, les appels du service Web distant aboutissent à "Statut HTTP 403: Interdit". Semble que le codage n'est pas un problème car le même module fonctionne correctement dans l'environnement nUnit et ne fonctionne pas dans Windows Service.

environnement de développement
- Windows XP - vistual Studio 2008 - Nunit - C#

déjà été essayé
1. L'exécution du service Windows personnifié par un compte d'administrateur local.
2. Ajoutez le programme à la liste d'exceptions sur le pare-feu Windows.Code dans nUnit fonctionne très bien, mais dans le service Windows obtient le statut HTTP 403: Interdit lorsque vous appelez un service Web distant

Merci

+0

Peut-être que vous devriez publier le code qui héberge votre module dans un service Windows. – Bernard

+0

@bernard Cela fonctionne lorsque nous testons en utilisant l'application nUnit. Mais quand il s'agit de Windows Service, il soulève une erreur de communication. Cela ne semble pas être le code. Peut-être les paramètres de configuration ou de sécurité. –

Répondre

1

Vous devez exécuter le service à partir d'un autre compte qui a administratives les privilèges du. Il donnera une erreur s'il est exécuté sous le compte LocalSystem.

+0

Il y a longtemps. Je ne sais pas exactement comment j'ai résolu ce problème mais votre approche est correcte aussi. Merci! –