2012-10-22 36 views
7

Trong Visual Studio 2012, việc sử dụng các cấu hình xuất bản cùng với triển khai web đơn giản hóa việc triển khai khá một chút. Tuy nhiên nó vẫn còn thiếu vài điều hoặc có thể là tôi không biết làm thế nào để sử dụng nó được nêu ra.Cách cấu hình các cấu hình xuất bản để sử dụng xác thực NTLM

  • Tôi thích sử dụng xác thực NTLM mà không lưu trữ tên người dùng và mật khẩu (đặc biệt) trong hồ sơ xuất bản. Điều này có thể giải quyết như thế nào? Nếu tôi để trống tên người dùng và mật khẩu, tôi sẽ được nhắc. Có cách nào giống như chỉnh sửa thủ công tệp .pubxml không?
  • Tại sao tên người dùng/mật khẩu được lưu trữ trong PublishProfileName.pubxml mà tôi đã kiểm tra trong kiểm soát nguồn chứ không phải trong PublishProfileName.pubxml.user là địa phương cho từng người dùng? Ít nhất tôi có thể lưu tên người dùng nhưng rõ ràng là không muốn điều đó được đăng ký.
  • Bản thân cấu hình không phải là một phần của PublishProfileName.pubxml nhưng được lưu trữ trong PublishProfileName.pubxml.userLastUsedBuildConfiguration.
  • Tương tự cho Nền tảng là điểm cuối cùng.
  • Tôi cũng thiếu hỗ trợ cho việc triển khai đa máy chủ. Tôi hiện đang bị buộc phải sử dụng tệp hàng loạt ngoài Hồ sơ xuất bản.

EDIT

Dòng lệnh đó hoạt động tốt cho việc xuất bản là

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

Trong này tôi muốn bỏ qua /p:Configuration=QA nếu cấu hình trở thành một phần của hồ sơ công bố chính nó.

Trả lời

5

Một số câu trả lời cho câu hỏi của bạn.

  • Tôi thích sử dụng xác thực NTLM không lưu trữ tên người dùng và mật khẩu (đặc biệt) trong công bố hồ sơ. Làm thế nào có thể việc này được thực hiện? Nếu tôi để trống tên người dùng và mật khẩu, tôi là được nhắc. Có cách nào giống như chỉnh sửa thủ công tệp .pubxml không?

xác thực của bạn thường được dẫn dắt bởi cách Web Triển khai được lưu trữ.Theo mặc định nếu bạn đang sử dụng dịch vụ quản lý Web thì bạn đang sử dụng người dùng IIS cho auth. Với người dùng IIS, bạn có thể kiểm soát người dùng nào có quyền đối với các trang web/ứng dụng cụ thể. Bạn cũng có thể cấu hình WMSVC để sử dụng Windows auth. Nếu bạn gặp vấn đề khi sử dụng VS cho những tình huống đó, hãy cho tôi biết. Nếu bạn đang sử dụng dịch vụ Đại lý từ xa để lưu trữ Web Deploy thì trong trường hợp này bạn sẽ sử dụng auth windows.

  • Tại sao tên người dùng/mật khẩu được lưu trữ trong PublishProfileName.pubxml mà tôi đã kiểm tra trong việc kiểm soát nguồn và không có trong PublishProfileName.pubxml.user đó là địa phương cho mỗi người dùng? Tôi có thể ít nhất lưu tên người dùng nhưng rõ ràng là không muốn điều đó phải được kiểm tra trong

. Chúng tôi có một cơ chế để bạn có thể xác định những thông tin nào là tư nhân/chia sẻ. Ngoại trừ mật khẩu, tất cả thông tin xuất bản được chia sẻ (và được đăng ký theo mặc định). Để đơn giản hóa thiết kế, bạn có thể có hồ sơ xuất bản được chia sẻ hoặc không được chia sẻ. Không có ở giữa, trong đó bạn có một hồ sơ mà một số lĩnh vực được chia sẻ và khác không. Mật khẩu được gắn đặc biệt ở đây và được mã hóa trên cơ sở cho mỗi người dùng/mỗi máy trong tệp .pubxml.user.

Nếu bạn muốn có một hồ sơ xuất bản riêng thì bạn có thể chỉ cần không kiểm tra tệp .pubxml tương ứng với hồ sơ xuất bản. Chúng được lưu trữ trong Properties \ PublishProfiles (hoặc My Project \ PublishProfiles cho VB) và chỉ loại trừ chúng khỏi dự án và không kiểm tra các tệp. Hộp thoại xuất bản tìm các cấu hình trên đĩa, không chỉ các cấu hình nằm trong dự án. Mọi thứ sẽ tiếp tục hoạt động.

Chúng tôi không hỗ trợ khái niệm về lưu trữ có chọn lọc các giá trị trong tệp .pubxml.user. Hộp thoại xuất bản sẽ chỉ lưu trữ một số giá trị được đặt trong tệp đó. Thay vì

  • Configuration tự nó không phải là một phần của PublishProfileName.pubxml nhưng được lưu trữ trong PublishProfileName.pubxml.user như LastUsedBuildConfiguration.
  • Tương tự cho Nền tảng là điểm cuối cùng.

Đây là lỗi mà nó phải được lưu trữ trong tệp .pubxml chứ không phải tệp .pubxml.user. Chúng tôi đã sửa lỗi này nhưng chưa có cơ hội phát hành bản cập nhật.

Thuộc tính cấu hình không thể được đặt trong cấu hình xuất bản. Thuộc tính cấu hình là một phần cốt lõi của quá trình xây dựng. Cụ thể hơn, lý do tại sao chúng tôi không gọi thuộc tính này Cấu hình là do tệp .pubxml được nhập vào định nghĩa của .csproj/.vbproj trong khi xuất bản xây dựng &. Vì các thuộc tính khác được xác định dựa trên cấu hình bạn không thể thay đổi giá trị khi nó được thiết lập. Tôi chỉ viết blog với quá nhiều chi tiết về chủ đề này tại http://sedodream.com/2012/10/27/MSBuildHowToSetTheConfigurationProperty.aspx. Giới hạn này là một điều MSBuild không phải là một giới hạn xuất bản. Đối với dòng lệnh bạn nên xác định cấu hình theo cách sau: msbuild.exe myproj.csproj /p:...(other tài sản) .../p: Cấu hình =

hỗ trợ
  • Tôi cũng mất tích để triển khai đa máy chủ. Tôi hiện đang bị buộc phải sử dụng tệp hàng loạt ngoài Hồ sơ xuất bản.

Chúng tôi không có hỗ trợ trực tiếp cho điều này, nhưng nếu bạn mở rộng theo nhu cầu của mình, tôi có thể trợ giúp. FYI Tôi có một phần mở rộng mà bạn có thể quan tâm. Tôi đã đăng một video 5 phút đến http://sedodream.com/2012/03/14/PackageWebUpdatedAndVideoBelow.aspx.

+0

Cảm ơn câu trả lời. Tôi cần phải đề cập, các máy chủ được thiết lập đúng để chấp nhận NTLM (Tôi đã sử dụng người dùng Windows thay vì người dùng IIS) cho Web Deploy sử dụng WMSVC. Điểm đầu tiên của tôi là về các hồ sơ xuất bản tức là làm cách nào để tôi cho các hồ sơ xuất bản sử dụng NTLM. Nếu tôi bỏ qua tên người dùng/mật khẩu trong khi thiết lập hoặc xóa thủ công khỏi tên .pubxml, nó sẽ hiển thị hộp thoại thông tin xác thực. Tôi có thể nhập thông tin đăng nhập của tôi như MyDomain \ MyWindowsUsername và MyPassword và nó hoạt động tốt nhưng tôi phải làm như vậy mỗi lần. Tôi đang tìm một tùy chọn để yêu cầu nó sử dụng thông tin đăng nhập cửa sổ hiện tại của tôi. –

+0

Điểm thứ hai của tôi là về hồ sơ được chia sẻ. Mỗi tiểu sử là hai phần - được chia sẻ (đã đăng ký) và không được chia sẻ (.user) là địa phương. Chúng tôi đang sử dụng tên người dùng cá nhân nhưng vẫn muốn sử dụng hồ sơ được chia sẻ. Sẽ thận trọng hơn khi lưu tên người dùng/mật khẩu trong cấu hình .user để mỗi người dùng có thể có cài đặt của riêng họ trong khi vẫn có thể sử dụng tiểu sử được chia sẻ (chứa tất cả các cài đặt khác). Đây là điều quan trọng mà nhiều người dùng có thể xuất bản để nói QA, chúng tôi không muốn mỗi người tạo hồ sơ xuất bản của riêng họ khi điều duy nhất khác với tên người dùng/mật khẩu. –

+0

Rất mong nhận được bản cập nhật đó với bản sửa lỗi cho Cấu hình và Nền tảng đang được lưu trữ trong cấu hình .user. Làm thế nào nó sẽ tác động đến người dùng mà không có hồ sơ và có một cái mới từ TFS và xuất bản bằng cách sử dụng nó? Giả sử một cấu hình (PublishToQA.pubxml) được cho là sử dụng cấu hình QA nhưng không có PublishToQA.pubxml.user và cấu hình được sử dụng lần cuối là Debug? Tôi đoán tôi sẽ kiểm tra nó với một thành viên khác trong nhóm. –

0

Bạn được miễn phí (và được khuyến khích) chỉnh sửa thủ công các tệp pubxml của mình, vì vậy vui lòng xóa mật khẩu.

Để chuyển sang NTLM, hãy thay đổi AuthType thành NTLM trong PropertyGroup đầu tiên.

PlatformConfiguration vẫn là cấu hình xây dựng, tệp user chỉ lưu trữ chúng để Visual Studio biết cấu hình cuối cùng bạn triển khai là gì.

Bằng nhiều máy chủ, bạn có nghĩa là trang trại không? Nếu vậy, bạn có thể thử xem Web Farm Framework mà về cơ bản thực hiện MSDeploy đồng bộ từ máy chủ chính cho người khác.

Hoặc, bạn có thể chuyển sang dòng lệnh và sử dụng postSync để tải lên và thực thi tệp lô trên máy chủ từ xa kích hoạt các triển khai khác từ đó.

+0

Cảm ơn Richard đã trả lời. Tôi đã chỉnh sửa tệp pubxml theo nhiều cách khác nhau để làm cho tệp đó hoạt động, bao gồm thêm NTLM nhưng ngay cả khi nó yêu cầu thông tin xác thực người dùng. Nếu tôi điền vào các thông tin người dùng cửa sổ của tôi nó hoạt động nhưng tôi đã hy vọng rằng kể từ khi tôi đã đăng nhập và nếu tôi đã có thể bằng cách nào đó nói với nó để sử dụng NTLM, nó sẽ lấy các thông tin cửa sổ hiện tại của tôi và sử dụng chúng mà không cần phải nhập nó mỗi lần. –

+0

Tiểu sử xuất bản được cho là lưu trữ Nền tảng và cấu hình để khi một hồ sơ xuất bản cụ thể, ví dụ: MyPublishProfileForQA được sử dụng cấu hình QA của tôi (như một phần của định nghĩa hồ sơ) được sử dụng. @Sayed đã crarifed phần đó mặc dù. Vì vậy, cho đến khi cập nhật, chúng tôi sẽ phải tiếp tục cung cấp thông tin này theo cách thủ công. –

+0

Tôi đã yêu cầu một "Bộ điều khiển" cho WFF và cho đến lúc đó tôi vẫn tiếp tục sử dụng các tập tin batch để quản lý việc triển khai nhiều máy chủ. –

Các vấn đề liên quan