App-V: Unable to contact the Application Virtualization System. Error code 0000C809
Suite à l’installation de cette console sur mon poste client, lors de ma tentative de connexion sur le serveur App-V, j’ai reçut l’erreur suivante:
Par contre, en utilisant la console de management localement sur le serveur, aucune erreur de connexion.
Le fichier sftmmc.log de la console de gestion de App-V nous donne également un message d’erreur intéressant:
Server stack trace:
at System.Runtime.Remoting.Channels.Http.HttpClientTransportSink.ProcessResponseException(WebException webException, HttpWebResponse& response)
at System.Runtime.Remoting.Channels.Http.HttpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)
at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at SoftGrid.Management.IAuthorization.Authorize()
at ManagementConsole.ManagementSession.connect(String urlPrefix, NetworkCredential cred)
--- End of inner exception stack trace ---
J’ai essayé de reproduire cette erreur dans un environnement de labo avec la même version de App-V (4.5) mais sans succès, car dans cette configuration, un poste client n’avait aucun problème pour initier une connexion distante au niveau de la console.
Google étant notre amis, il n’a pas pu m’aider (dans un premier temps) sur cette erreur assez spécifique.
Mais que signifie cette erreur?
L’erreur The remote server returned an error: (400) Bad Request nous indique que vous vous êtes correctement identifié avec votre compte utilisateur mais qu’une erreur est survenue lors de l’autorisation.
Identification et autorisation sont 2 choses totalement différentes.
D’où peut provenir cette erreur?
L’architecture de App-V est très simple, vous avez un service web qui est installer sur le serveur et qui permet la connexion du client ainsi que de la console de gestion.
Puisque nous avons un problème avec le processus d’autorisation, cela signifie qu’’il y a bien une connexion qui s’est établie entre la console et le service web, donc tout porte à croire que le problème se situe soit au niveau du service web, soit au niveau de l’IIS.
J’ai suivit le guide suivant pour revalider chaque point de l’installation de mon serveur App-V.
- Vérifier les droits sur compte Network Service
- Vérifier que le compte ASP.NET a bien les droits nécessaire sur certains fichiers
- Vérifier l’application pool de l’IIS qui héberge le web service de App-V
- Vérifier quelques autres points de configurations comme les chemins d’accès
Malgré cela, le problème a persisté.
J’ai élargit mon scope de recherche en me basant sur le message d’erreur présent dans le fichier sftmmc.log et par chance j’ai trouvé un article traitant d’un problème similaire pour un autre produit de Microsoft: CLM
Cette article explique que cette erreur peut être générée quand un ticket Kerberos dépasse la taille gérée par défaut par l’IIS. Ce dépassement peut survenir par exemple car votre compte utilisateur se trouve dans beaucoup de groupes.
Et bingo, c’est mon cas. Mon utilisateur est membre de 230 groupes, ce qui génère un ticket Kerberos assez important en taille.
La solution
Pour solutionner ce problème, il faut changer les valeurs par défaut de IIS.
- Créer 2 clés de registre sur le serveur IIS: HKLM\System\CurrentControlSet\Services\Http\Parameters\
MaxFieldLenght | DWORD | 65534 |
MaxRequestBytes | DWORD | 16777216 |
- Net stop http
- Net start http
- Net stop iisadmin /y
- Net start “World Wide Web Publishing Service”
Et voilà, tout est rentré dans l’ordre
Résumé des articles:
Enjoy !!!
Leave a Reply