2012-10-22 16 views
7

W Visual Studio 2012 używanie profili publikowania wraz z wdrożeniem sieciowym upraszcza wdrażanie. Jednak wciąż brakuje kilku rzeczy lub może nie wiem jak go jeszcze użyć.Jak skonfigurować profile publikowania do korzystania z uwierzytelniania NTLM

  • Wolę używać uwierzytelniania NTLM bez zapisywania nazwy użytkownika i hasła (szczególnie) w profilach publikowania. Jak to zrobić? Jeśli zostawiam nazwę użytkownika i hasło puste, zostanie wyświetlony monit o to. Czy istnieje sposób ręcznego modyfikowania plików .pubxml?
  • Dlaczego nazwa użytkownika/hasło są przechowywane w PublishProfileName.pubxml, które sprawdziłem w kontrolerze źródłowej, a nie w PublishProfileName.pubxml.user, która jest lokalna dla każdego użytkownika? Mógłbym przynajmniej zapisać nazwę użytkownika, ale oczywiście nie chcę, aby to zostało odprawione.
  • Konfiguracja sama w sobie nie jest częścią PublishProfileName.pubxml, ale jest przechowywana w PublishProfileName.pubxml.user jako LastUsedBuildConfiguration.
  • To samo dotyczy platformy jako ostatniego punktu.
  • Brakuje również wsparcia dla wdrożeń dla wielu serwerów. Obecnie jestem zmuszony do używania plików wsadowych oprócz Opublikuj profile.

EDIT

Linia komend że działa dobrze do publikacji jest

MSBuild.Exe MyProject.sln /p:Configuration=QA /p:DeployOnBuild=true;PublishProfile=PublishToQA;AllowUntrustedCertificate=true /p:authType=NTLM /p:UserName= 

W tym chciałbym pominąć /p:Configuration=QA jeśli konfiguracja staje się częścią profilu publikowania siebie.

Odpowiedz

5

Kilka odpowiedzi na twoje pytania.

  • wolę używać uwierzytelniania NTLM bez zapisywania nazwy użytkownika i hasła (zwłaszcza) w profilach publikowania. Jak to zrobić? Jeśli zostawiam nazwę użytkownika i hasło puste, otrzymam monit o wpisanie . Czy istnieje sposób ręcznego modyfikowania plików .pubxml ?

Twoje uwierzytelnienie zależy od sposobu hostingu w sieci Web.Domyślnie, jeśli korzystasz z usługi zarządzania przez Internet, to do uwierzytelniania używasz użytkowników usług IIS. Dzięki użytkownikom IIS możesz kontrolować, którzy użytkownicy mają uprawnienia do określonych witryn/aplikacji. Możesz także skonfigurować WMSVC, aby używał również uwierzytelniania Windows. Jeśli masz problemy z używaniem VS do tych scenariuszy, daj mi znać. Jeśli używasz usługi Remote Agent do hostowania Web Deploy, w takim przypadku będziesz używać uwierzytelniania systemu Windows.

  • Dlaczego nazwa użytkownika/hasło przechowywane w PublishProfileName.pubxml które zostały sprawdzone w kontroli źródła, a nie w PublishProfileName.pubxml.user że jest lokalny dla każdego użytkownika? Mógłbym przynajmniej zapisać nazwę użytkownika, ale oczywiście nie chce, że musi być ona sprawdzona w.

Mamy inny mechanizm, aby określić, jakie informacje są prywatne/wspólne. Z wyjątkiem hasła wszystkie informacje publikowane są udostępniane (i domyślnie są sprawdzane pod numerem). Aby uprościć projekt, możesz mieć udostępniony profil publikowania lub taki, który w ogóle nie jest udostępniany. Nie ma pośredniego miejsca, w którym masz profil, w którym niektóre pola są udostępniane, a inne nie. Hasło jest tutaj zapisane specjalnym przykładem i jest zaszyfrowane dla każdego użytkownika/maszyny w pliku .pubxml.user.

Jeśli chcesz mieć prywatny profil publikowania, możesz po prostu nie sprawdzić pliku .pubxml, który odpowiada profilowi ​​publikowania. Są one przechowywane we Właściwościach \ PublishProfiles (lub My Project \ PublishProfiles dla VB) i po prostu wykluczają je z projektu i nie sprawdzają plików. Okno dialogowe publikowania wyszukuje profile na dysku, a nie tylko te, które są w tym katalogu. projekt. Wszystko powinno dalej działać.

Nie popieramy pojęcia selektywnego przechowywania wartości w pliku .pubxml.user. Okno dialogowe publikowania będzie przechowywać tylko określoną liczbę wartości w tym pliku. Zamiast

  • Sama konfiguracja nie jest częścią PublishProfileName.pubxml ale jest przechowywany w PublishProfileName.pubxml.user jak LastUsedBuildConfiguration.
  • To samo dotyczy platformy jako ostatniego punktu.

To był błąd, że powinny zostać zapisane w pliku .pubxml, a nie plików .pubxml.user. Od tego czasu naprawiliśmy to, ale jeszcze nie mieliśmy okazji opublikować aktualizacji.

Właściwość konfiguracji nie może zostać ustawiona w profilu publikowania. Właściwość Configuration jest podstawową częścią procesu kompilacji. Mówiąc dokładniej, powodem, dla którego nie wywoływaliśmy tej właściwości Konfiguracja jest fakt, że plik .pubxml jest importowany do definicji pliku .csproj/.vbproj podczas publikacji kompilacji &. Ponieważ inne właściwości są zdefiniowane w oparciu o konfigurację, nie można zmienić wartości po jej ustawieniu. Właśnie napisałem zbyt dużo szczegółów na ten temat pod numerem http://sedodream.com/2012/10/27/MSBuildHowToSetTheConfigurationProperty.aspx. To ograniczenie jest sprawą MSBuild, a nie ograniczeniem publikacji. Dla linii poleceń należy określić konfigurację w następujący sposób: msbuild.exe myproj.csproj /p:...(other właściwości) .../p: Konfiguracja =

  • Ja również brakuje wsparcia w przypadku wdrożeń dla wielu serwerów. Obecnie jestem zmuszony do używania plików wsadowych oprócz Opublikuj profile.

Nie mamy bezpośredniego wsparcia dla tego, ale jeśli poszerzyć od potrzeb może będę mógł pomóc. FYI Mam rozszerzenie, które może Cię zainteresować. Wysłałem 5-minutowy film wideo do http://sedodream.com/2012/03/14/PackageWebUpdatedAndVideoBelow.aspx.

+0

Dzięki za odpowiedź. Powinienem wspomnieć, że serwery są poprawnie skonfigurowane, aby zaakceptować NTLM (użyłem użytkowników Windows zamiast użytkowników IIS) do Web Deploy z wykorzystaniem WMSVC. Mój pierwszy punkt dotyczył profili publikowania, tj. Jak mogę powiedzieć profilom publikowania, aby używały NTLM. Jeśli pominiesz nazwę użytkownika/hasło podczas konfigurowania lub ręcznego usuwania pliku .pubxml, pojawi się okno dialogowe poświadczeń. Mogę wprowadzić moje dane uwierzytelniające jako MyDomain \ MyWindowsUsername i MyPassword i działa dobrze, ale muszę to robić za każdym razem. Szukam opcji, aby powiedzieć, aby użyć moich bieżących poświadczeń systemu Windows. –

+0

Moja druga kwestia dotyczy wspólnych profili. Każdy profil składa się z dwóch części - współdzielonej (zaznaczone) i niepodzielonej (.user), która jest lokalna. Używamy indywidualnych nazw użytkowników, ale nadal chcemy korzystać z profilu udostępnionego. Rozsądniej byłoby zapisać nazwę użytkownika/hasło w profilu .user, aby każdy użytkownik mógł mieć własne ustawienia, a jednocześnie mógł korzystać z udostępnionego profilu (zawierającego wszystkie pozostałe ustawienia). Jest to ważne, gdy wielu użytkowników może publikować, aby powiedzieć kontroli jakości, nie chcemy, aby każdy tworzył swój własny profil publikowania, gdy jedyną rzeczą, która jest inna, jest nazwa użytkownika/hasło. –

+0

Czekamy na tę aktualizację z poprawką dla konfiguracji i platformy przechowywaną w profilu .user. W jaki sposób wpłynie to na użytkownika, który nie ma profilu, a dostanie nowy z TFS i opublikowany za jego pomocą? Załóżmy, że profil (PublishToQA.pubxml) powinien korzystać z konfiguracji kontroli jakości, ale nie ma wersji PublishToQA.pubxml.user, a ostatnia używana konfiguracja to Debugowanie? Sądzę, że przetestowałbym to z innym członkiem zespołu. –

0

Jesteś wolny (i zachęcany) do ręcznej edycji plików pubxml, więc możesz je usunąć.

Aby przełączyć się na NTLM, zmień AuthType na NTLM w pierwszym PropertyGroup.

Platform i Configuration pozostają zbudować konfiguracji, plik user prostu przechowuje je tak Visual Studio wie, jaka była ostatnia konfiguracja ty rozmieszczone.

Według wielu serwerów, masz na myśli farmę internetową? Jeśli tak, możesz spróbować spojrzeć na numer Web Farm Framework, który zasadniczo wykonuje synchronizacje MSDeploy z serwera głównego na inne.

Alternatywnie można przełączyć się do wiersza poleceń i użyć postSync, aby przesłać i uruchomić plik wsadowy na serwerze zdalnym, który uruchamia inne stacje robocze.

+0

Dziękuję Richardowi za odpowiedź. Zrobiłem edycję pliku pubxml na różne sposoby, aby go uruchomić, w tym dodanie NTLM, ale nawet wtedy prosi o poświadczenia użytkownika. Jeśli wypełnię moje poświadczenia użytkownika systemu Windows, to działa, ale miałem nadzieję, że skoro jestem już zalogowany i gdybym był w stanie jakoś powiedzieć, aby użyć NTLM, to wziąłbym moje bieżące dane uwierzytelniające systemu Windows i użyłbym ich bez konieczności wprowadzania go każdego razu. –

+0

Profile publikowania mają przechowywać platformę i konfigurację tak, aby podczas określonego profilu publikowania, np. MyPublishProfileForQA jest używana moja konfiguracja QA (jako część definicji profilu). @ Sayed podzielił tę część. Tak więc do aktualizacji będziemy musieli ręcznie dostarczać te informacje. –

+0

Poprosiłem o "Kontroler" dla WFF i do tego czasu używam plików wsadowych, aby zająć się wdrażaniem wielu serwerów. –

Powiązane problemy