Wdrażam wiele projektów .Net na różnych serwerach. Aby to zrobić, mój zespół używa TFS do budowania, a następnie z szablonu kompilacji wywołującego skrypt ps1, który używa msdeploy do wypychania na wszystkie różne serwery. To wszystko jest bardzo owocne i nie, nie mam teraz możliwości przejścia na coś innego. Ten proces działa od miesięcy bez żadnych problemów.MSDeploy wyrzuca dziwny błąd: dane strumieniowe pliku xxxxx.dll nie są jeszcze dostępne
Dziś wdrożyć powiodło się kilka razy z rzędu z kilku różnych błędów. Że sam mnie dezorientuje (i nie mogą być istotne), ale teraz jestem coraz jeden konsekwentnie jest taka:
Wystąpił błąd, gdy żądanie zostało przetworzone na komputerze zdalnym. Dane strumienia "C: \ Builds \ SomeDirectory \ obj \ Debug \ Package \ PackageTmp \ AReferencedProject.dll" nie są jeszcze dostępne.
Ten błąd się dzieje, gdy mój skrypt uruchamia msdeploy. Plik dll jest używany przez usługę Windows, ale usługa jest zatrzymana (o ile mogę powiedzieć - zatrzymanie usługi nie rzuca żadnych błędów) i biblioteka dll nie jest "tylko do odczytu". Plik DLL istnieje na komputerze, który jest budowany/wdrażany, a także na maszynie, która jest wdrażana.
Odkryłem, że mogę uniknąć tego błędu, jeśli usunę plik DLL, który "nie jest dostępny" z serwera, na którym działam, ale problem pojawia się z powrotem przy każdym kolejnym wdrożeniu, chyba że ręcznie usunę tę bibliotekę przed każdym wdrożeniem .
Widziałem this problem ale nie pcham do Azure, tylko do Windows Server 2008. Czy ktoś wie, dlaczego Microsoft Web Deploy (msdeploy) rzuciłby ten błąd?
Chciałbym dostać ten problem ponownie, więc mógłbym przetestować proponowane rozwiązania :( – Mario
Znowu wyhodował swoją brzydką głowę, ale ja próbowałem recyklingu wszystkich pul aplikacji, ponowne uruchamianie IIS, a nawet ponowne uruchamianie zarówno budowania i serwerów WWW.Niekt z nich pomógł mi – Mario
OK - to rozwiązuje problem.Dobry problem polegał na tym, że biblioteka dll została zablokowana, podobnie jak twój problem. Wdrożenie, które odziedziczyłem, polegało na wdrażaniu zarówno witryn sieci Web, jak i usług. Usługi zostały wdrożone w sposób zaatakowany przez hackowanie za pomocą msdeploy. Zauważyłem, przeglądając dziennik kompilacji, że jest to usługa, która miała problem. usługa, którą znalazłem, utknęła, więc zabiłem ją i zrestartowałem - podobnie jak zrestartowanie puli aplikacji dla witryny – Mario