7
votes

Erreur bizarre de MsDeploy: Les données de flux de xxxxx.dll ne sont pas encore disponibles.

Je déplouve un certain nombre de projets .NET à différents serveurs. Pour ce faire, mon équipe utilise TFS pour créer, puis à partir du modèle de construction appelant un script PS1 utilisant MSDEploy pour appuyer sur tous les différents serveurs. Tout est très entreprise et non, je ne suis pas libre de passer à quelque chose de différent pour le moment. Ce processus travaille depuis des mois sans problème.

Aujourd'hui, le déploiement a échoué quelques fois de suite avec quelques erreurs différentes. Cela seul me confond (et peut ne pas être pertinent) mais maintenant celui que je deviens systématiquement est celui-ci:

Une erreur s'est produite lorsque la requête a été traitée sur l'ordinateur distant. Les données de flux de 'C: \ Builds \ Somedirectory \ obj \ debug \ package \ packagetmp \ isferrendefroject.dll' n'est pas encore disponible.

Cette erreur se produit lorsque mon script exécute MSDeploy. La DLL est utilisée par un service Windows, mais le service est arrêté (autant que je puisse dire - l'arrêt de service ne lance aucune erreur) et la DLL n'est pas "en lecture seule". La DLL existe sur la machine qui construit / déployant ainsi que la machine qui est déployée à.

J'ai découvert que je peux éviter cette erreur si je supprime la DLL qui "n'est pas disponible" à partir du serveur que je déploie, mais le problème revient à chaque déploiement ultérieur, à moins que je ne supprime manuellement cette DLL avant chaque déploiement.

J'ai vu Ce problème mais je ne pousse pas à Azure, juste à Windows Server 2008. Est-ce que quelqu'un sait pourquoi Microsoft Web Deploy (msdeploy) lancerait cette erreur?


0 commentaires

3 Réponses :


0
votes

J'ai souffert du même problème que vous aujourd'hui et que vous avez rencontré votre question sans réponse, commençait à me tirer des cheveux ... Il y a juste si peu d'articles ou de suggestions sur cette question que j'ai presque donné up !!

Cependant, j'ai pu résoudre le problème pour moi, donc je pose ma solution pour vous aider et toute autre personne qui souffre de cette question.

Pour une raison quelconque, il semblait que mon site & Apppool in IIS avait un peu confus et a commencé à jeter l'erreur comme décrit dans la question ci-dessus. Pour résoudre ce problème, j'ai supprimé le site d'origine (arrêté le site et APPPOOL), créé un nouveau site et AppPool avec les mêmes paramètres, publié à celui-ci à l'aide de Webdeploy et il semble maintenant se comporter à nouveau.

Cela pourrait ne pas fonctionner pour les autres, mais j'espère donner aux gens autre chose à essayer.


1 commentaires

Merci John. Je ne l'ai pas vu ces derniers temps (il suffit de disparaître sans que je fais rien) mais je vais essayer cette solution si elle est à nouveau la tête laide. Je me demande si cela pourrait avoir quelque chose à voir avec les autorisations de dossier depuis la création d'un nouveau site résolu pour vous



8
votes

J'ai eu le même problème. Essayé de déployer plusieurs fois avec la même erreur.

Recyclage du pool d'applications sur le serveur a résolu le problème, de sorte que je puisse lancer un déploiement normal à nouveau.


3 commentaires

J'aimerais que je puisse obtenir ce problème à nouveau afin que je puisse tester ces solutions proposées :(


Il a reproché sa tête laid, mais j'ai essayé de recycler tous les pools app, de redémarrer IIS et de redémarrer même les serveurs de construction et de web. Aucun de ceux qui m'ont aidé


OK - cela résout le problème. Mon problème spécifique était que la DLL était verrouillée, tout comme votre problème. La seule différence était que le déploiement que j'ai hérité a déployé à la fois des sites Web et des services. Les services étaient déployés sous une sorte de manière piratée en utilisant le MSDeploy, et j'ai trouvé en examinant le journal de construction qu'il s'agissait d'un service qui avait la question. Après avoir regardé le service, j'ai trouvé que c'était coincé, alors je l'ai tué et redémarais - à peu près la même chose que le redémarrage du pool d'applications pour un site



3
votes

Nous rencontrons ce problème de manière cohérente avec sqlite.interop.dll (utilisé par Elmah dans notre application Web.) Au mieux que je puisse dire, le problème concerne le fait que le dll sqlite.interop.dll est utilisé par notre Application Web via Elmah, et pour une raison quelconque, cette DLL n'est pas une ombre copiée. La solution que nous utilisons est que Recommandé ici de recycler le pool d'applications sur chaque déploiement. Notre commande est comme: xxx

Ceci permet au msdeploy ultérieur qui synchronise notre package de déploiement à réussir. Quelqu'un a répondu à ce forum suggérant également d'utiliser "-Enablerle: appoffline", que nous n'avions pas besoin d'essayer.


0 commentaires