2012-06-15 25 views
5

Po wdrożeniu na platformie Azure ciągle pojawiały się błędy serwera - aplikacja nie działała. Zrobiłem zdalny pulpit w instancji i odkryłem, że plik web.config został całkowicie przebudowany ... co się dzieje? Myślałem, że web.config został spakowany tak jak jest? Zamiast tego cała konfiguracja została zastąpiona. Kiedy zastępuję "nową" wersję oryginalną, niezmienioną, poprawną konfiguracją, moja aplikacja działa zgodnie z przeznaczeniem.Web.config zmieniony (drastycznie) podczas wdrażania platformy Azure

Po pierwsze, co się tutaj dzieje? Co ja robię źle? W ten sposób mogę to zrozumieć, a nie powtórzyć w przyszłości.

Po drugie, jak mogę zatrzymać to zachowanie? Chcę, aby oryginalny web.config został wdrożony - a nie jakiś arbitralny oszust. Dziękuję Ci!

+0

Czy możesz zamieścić kilka przykładów obu wersji? Czy masz nakładki Web.config do debugowania/wydania? Czy masz skonfigurowane transformacje parametrów? (coś jak http://msdn.microsoft.com/en-us/library/dd465326%28VS.100%29.aspx) –

+0

Tak, próbowałem opublikować obraz konfiguracji, ale moja "reputacja" jest zbyt niska. Nie mam nakładek ani transformacji (szczególnie z powodu tego problemu). Zdjęcie (z tego samego pytania) znajduje się tutaj: http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/2b5d705e-ffd5-4022-b32d-c67c0fe518cf. –

+0

Czy można wyodrębnić pakiet lazuru, aby sprawdzić, czy zmiana nastąpi podczas kompilacji/pakowania? Jeśli kompilujesz lokalnie + uruchamiasz te same konfiguracje w emulatorze lazuru, plik pozostaje nienaruszony? –

Odpowiedz

2

Na podstawie sugestii Dunnry'ego, aby rozpakować plik cskpkg, zauważyłem, że web.config nigdy nie był nawet zapakowany - więc Azure musiał stworzyć podstawowy z konieczności (bez ostrzeżenia!?!?). Po pewnym dochodzeniu natknąłem się na ten samorodek (z another StackOverflow question addressing deployment issues):

Okazuje się, że plik web.config nie był nawet uwzględniany w pakiecie wdrażania. W jakiś sposób plik BuildAction pliku web.config został zmieniony z Content na None.

Po zmianie właściwości BuildAction na "Treść" moje wdrożenie działa teraz zgodnie z oczekiwaniami.

2

O ile nie ma określonej transformacji (przy użyciu normalnego, wbudowanego web.config.debug i .release), nie zmienia żadnych ustawień użytkownika. W pewnym momencie przekształciło ustawienia klucza MachineKey tak, aby role sieciowe działały w scenariuszu farmy sieciowej (w przeciwnym wypadku nic by nie działało za równoważnikiem obciążenia). Jestem pewien, że nadal to robi, ale może to robić teraz na poziomie pliku machine.config (pozostawiając sam plik web.config). Nie sprawdzałem tego od jakiegoś czasu, więc nie jestem pewien, co teraz robi.

Łatwym sposobem sprawdzenia, co zostanie wdrożone, jest zapakowanie pliku cskpkg i otwarcie go jako pliku .zip. Wewnątrz będzie kolejny plik, który zawiera nazwę twojej roli internetowej. Otwórz to ponownie jako .zip i powinieneś zobaczyć swoją stronę internetową w całości zapakowaną. Sprawdź plik web.config i upewnij się, że jest to potrzebne. Jeśli nie, opublikuj tutaj to, co według ciebie nie powinno zostać zmienione.

+0

Dzięki. Kiedy rozpakowuję cskpkg tak, jak sugerujesz, widzę, że plik web.config jest całkowicie ** zagubiony ** z katalogu 'sites/0'. Masz pojęcie, co się tutaj dzieje? –

+2

Ahhh..zgłębione rozwiązanie. Wykorzystując swoją sugestię jako punkt wyjścia i tracąc dostęp do pliku web.config, znalazłeś ten samorodek ("W jakiś sposób wartość BuildAction pliku web.config została zmieniona z Treści na Brak") z [to pytanie] (http: // stackoverflow .pl/questions/9570016/azure-asp-net-mvc-web-config-deployment-issue). Teraz wdrożenie działa zgodnie z oczekiwaniami! Dzięki jeszcze raz. –

Powiązane problemy