App-V: Unable to contact the Application Virtualization System. Error code 0000C809

juin 29, 2010
sftlogo Quoi de plus normal que d’installer la console de management de App-V sur sur son poste de travail. Il existe un tas d’outils permettant ce scénario nous évitant, par la même occasion, de travailler à distance sans avoir besoin d’initier une session Rdp et risquer LA boulette en travaillant directement sur le serveur :-) (ex: le drag & drop involontaire)

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:

App-V-Err 0000C809

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:

ManagementConsole.MCException: The remote server returned an error: (400) Bad  Request. ---> System.Net.WebException: The remote server returned an error:  (400) Bad Request.

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 !!!

It's only fair to share...Share on Facebook

Leave a Reply