2010-11-28 28 views
0

J'ai créé un service Web WCF simple pour écrire des messages dans MQ (WebSphere MQ). Il était hébergé sur le serveur IIS 6.0. Service indiqué avec succès, mais lors de l'écriture du message dans MQ, il lançait une exception avec le code raison 2063.Besoin d'aide concernant le service Web WCF avec interaction MQ

Existe-t-il un moyen de remplacer l'utilisateur en cours d'exécution (en code) pour le service Web?

Nous vous remercions à l'avance ..

+0

Le service Web est exécuté sous le compte de l'hébergement d'AppPool (configuré dans IIS) par défaut. –

+0

Qu'est-ce que le «code de raison 2063»? –

+0

Merci Ladislav Mrnka..I modifié les propriétés du pool App dans IIS.Il fonctionne bien maintenant .... – user522972

Répondre

1

Le code de raison 2063 0x0000080f MQRC_SECURITY_ERROR fait référence à quelque chose d'extérieur à wmq. Par exemple, si les fichiers de configuration ne sont pas accessibles à l'application, si le mot de passe du fichier de clés est incorrect ou si QMgr ou l'application ne peuvent pas accéder aux ressources de domaine. Lors de l'accès à WMQ à l'aide de l'un des comptes d'administrateur d'un serveur Windows, le compte est résolu sur l'hôte local et WMQ n'a pas besoin d'interroger le domaine. Toutefois, lors de l'accès à WMQ avec un compte de domaine, il est nécessaire que QMgr interroge le domaine pour obtenir les groupes dont le compte demandant une connexion est membre. Pour cette raison, il est courant qu'un QMgr en cours apparaisse sain pour les administrateurs, mais qu'il échoue lorsqu'il est accédé à partir d'un compte de domaine.

Une façon de tester si cela est le problème est de s'assurer que l'accès se résout avec un compte local. Dans cet exemple, je suppose que QMgr s'exécute en tant que MUSR_MQADMIN - le compte par défaut pour Windows. Je suppose également que le nom du serveur est bigserver. Le test suivant isole le problème du QMgr ou de l'application.

Si ce n'est déjà fait, faites en sorte que l'application se connecte en mode client. Modifiez le canal client utilisé par l'application avec MCAUSER('[email protected]') (remplacez votre propre compte de service et votre nom de serveur) et tentez de vous reconnecter. Si vous obtenez un autre 2063 alors l'erreur est dans la configuration de l'application cliente. Si vous êtes connecté, le QMgr doit avoir les droits d'interroger le domaine. Il y a une section entière dans le manuel qui explique aux administrateurs de domaine ce qui est exactement requis. Si tel est le problème, veuillez pointer votre administrateur de domaine here.

Veuillez NE PAS laisser la chaîne configurée comme ceci. Toute personne qui peut y accéder sera un administrateur WMQ! Au lieu de cela, une fois que vous l'avez fait fonctionner, placez le compte de service de l'application dans le champ MCAUSER et utilisez setmqaut pour l'autoriser de manière appropriée.

+0

Merci pour votre réponse ... Lorsque je vérifie l'exécution de mon service sur l'utilisateur à l'exécution, il donne comme "NT AUTORITÉ \ SERVICE RÉSEAU ". Comment puis-je remplacer cet utilisateur en cours d'exécution (en code)? – user522972

+0

Si vous utilisez des connexions client, le MCAUSER du canal écrase tout ce que vous codez pour définir l'ID. MCAUSER vide permet à n'importe qui se connectant d'être un administrateur de sorte qu'il est presque toujours défini sur le compte de service de l'application si la sécurité est un problème. Si la sécurité n'est pas une préoccupation, il suffit de définir l'ID que vous voulez dans la classe d'environnement comme indiqué ici: http://bit.ly/fQGLHp –