2011-01-26 34 views
27

Tôi nhận được lỗi trái phép từ MsDeploy sử dụng xác thực NTLM khi cố gắng triển khai từ xa ứng dụng bằng người dùng cửa sổ không phải là quản trị cục bộ trên máy chủ đích. Tôi đã thiết lập các quy tắc trong Đoàn dịch vụ quản lý trên hộp đích với tất cả các nhà cung cấp được chọn. Theo quy tắc này, tôi đã thêm 2 người dùng có quyền cho phép ('*' và người dùng cửa sổ của tôi đang triển khai từ xa). Ngoài ra, tôi đã cho phép người dùng windows trên trang web mà tôi đang cố triển khai. Nếu tôi làm cho cửa sổ người dùng quản trị cục bộ trên hộp đích và đặt 'Cho phép quản trị viên bỏ qua quy tắc', triển khai hoạt động chính xác. Nếu người dùng cửa sổ không phải là quản trị viên cục bộ, tôi nhận được lỗi sau:WebDeploy (401) Lỗi trái phép

Web deployment task failed.(Remote agent (URL http://xxxxxxxx/MSDEPLOYAGENTSERVICE) could not be contacted. Make sure the remote agent service is installed and started on the target computer.) Make sure the site name, user name, and password are correct. If the issue is not resolved, please contact your local or server administrator. Error details: Remote agent (URL http://xxxxx/MSDEPLOYAGENTSERVICE) could not be contacted. Make sure the remote agent service is installed and started on the target computer. An unsupported response was received. The response header 'MSDeploy.Response' was 'V1' but 'v1' was expected. The remote server returned an error: (401) Unauthorized. in Microsoft.Web.Publishing.targets(3588, 5)

+0

Chính xác cùng một vấn đề ở đây –

+7

Lưu ý cho người khác: nếu thông báo lỗi của bạn KHÔNG bao gồm lỗi 'v1', thì đó là nguyên nhân khác. Trong trường hợp của tôi, đó là một thứ liên quan đến UAC, như được mô tả và được sửa ở đây: http://networkprogramming.wordpress.com/2010/10/29/401-not-authorized-for-msdeploy%E2%80%8F- msdeployagentservice/ –

+0

Một hack đăng ký sửa chữa các cổ phiếu hành chính cũng sửa lỗi này, và có vẻ là một vấn đề mã thông báo UAC. Sử dụng sửa chữa MS này: https://support.microsoft.com/en-gb/kb/947232 –

Trả lời

48

Nếu bạn định cấu hình ủy quyền thành "Cho phép quản trị viên bỏ qua quy tắc" và lệnh msdeploy thành công, khi đó bạn sẽ trải qua WMSvc và nó cho phép bạn vượt qua. Nếu không, từ phản ứng có vẻ như WMSvc đang từ chối bạn và bạn đang rơi trở lại đại lý Web Deloy.

Set/thêm giá trị reg sau để WMSvc reg key:

reg add HKLM\Software\Microsoft\WebManagement\Server /v WindowsAuthenticationEnabled /t REG_DWORD /d 1

Recycle WMSvc:

net stop wmsvc & net start wmsvc

Vui lòng thử lại. Nếu nó không thành công, bạn có thể đăng dòng lệnh msdeploy của mình không.

+1

Việc thêm cài đặt đăng ký này dường như đã khắc phục sự cố. Bạn có thể giải thích một chút về những gì thiết lập này là hoặc chỉ cho tôi để MSDN? – cfbarbero

+9

Bạn cũng có thể định cấu hình tùy chọn này từ giao diện người dùng. Nếu bạn truy cập vào "Dịch vụ quản lý" trong InetMgr.exe và kiểm tra "Windows Credentials", giá trị đăng ký đó sẽ được đặt thành 1 và RequireWindowsCredentials sẽ được đặt thành 0.Nếu bạn sẽ kiểm tra "thông tin đăng nhập Windows hoặc chứng chỉ quản trị IIS", thì cả hai giá trị sẽ được đặt thành 1. – kateroh

+1

Về cơ bản, trước khi đi qua Dịch vụ quản lý web (WmSvc) với Triển khai Web, bạn cần đảm bảo rằng nó được cấu hình đúng trên máy chủ . Sử dụng giao diện người dùng là cách tốt nhất để thực hiện việc này. – kateroh

3

Không chắc chắn nguyên nhân chính xác, nhưng có thể giúp bạn tìm đường.

WebDeploy sử dụng hai điểm nhập dựa trên cấu hình của máy chủ từ xa, cụ thể là cho dù đang chạy IIS6 hoặc IIS7.

IIS 7 sử dụng Trình xử lý triển khai IIS, được quản lý bởi Dịch vụ quản lý web và cho phép msdeploy cung cấp trực tiếp IIS. Tất cả các cài đặt "ủy quyền dịch vụ quản lý", vv liên quan đến thiết lập này.

IIS 6, tuy nhiên, không có dịch vụ quản lý web nên trình xử lý sẽ không hoạt động. Đối với mục tiêu IIS6, một dịch vụ được gọi là MS Triển khai dịch vụ đại lý được sử dụng. Điều này có nghĩa là thiết lập của bạn cho thấy bạn đang sử dụng IIS 7, vì bạn có thể thiết lập các thiết lập delgation, vv Tuy nhiên, url đó, "/ MSDEPLOYAGENTSERVICE" cho thấy máy của bạn đang cố sử dụng dịch vụ ... gần như là nếu nó nghĩ rằng IIS của nó 6. Dịch vụ yêu cầu quyền truy cập quản trị, đó là lý do tại sao bạn nhận được lỗi đó.

Dựa trên lỗi có vẻ như bạn đang gọi điều này từ MSbuild, có khả năng trực tiếp từ Visual Studio. Bạn có thể muốn xem xung quanh các cài đặt bạn được cung cấp và xem liệu có bất kỳ điều gì trong đó đang gây ra đường dẫn và/hoặc lựa chọn máy chủ này hay không.

Cũng đảm bảo rằng Dịch vụ quản lý web đang chạy trên máy từ xa.

Về cơ bản, bạn muốn xem nó triển khai cuộc gọi đến một url khác, http: // <> /msdeploy.axd (nếu tôi nhớ chính xác) để gọi trình xử lý đúng cách.

5

Chúng tôi có một máy tính mà chúng tôi đã triển khai để tham gia vào quá trình xây dựng của chúng tôi. Vì không có lý do rõ ràng, việc triển khai ngừng hoạt động và chúng tôi không còn có thể truy cập từ xa bất kỳ cổ phiếu hành chính nào (C $, ADMIN $, v.v.).Chúng tôi đã tìm thấy bản sửa lỗi cho các cổ phiếu quản trị cũng đã khắc phục sự cố triển khai.

Chúng tôi đã làm theo bước trong bài viết KB này để bật lại các chia sẻ quản trị (vẫn không biết tại sao chúng đột nhiên ngừng hoạt động).

http://support.microsoft.com/kb/947232

Sau khi chúng tôi đã làm điều đó, msdeploy tất cả của một đột ngột bắt đầu hoạt động trở lại là tốt. Tôi đã không nghĩ rằng msdeploy sử dụng chia sẻ hành chính ở tất cả. Tôi thậm chí không tích cực cả hai đều có liên quan chút nào, nhưng tôi nghĩ tôi sẽ ném nó ra khỏi đó trong trường hợp nó giải quyết được vấn đề của người khác.

+1

MSDeploy không sử dụng chia sẻ hành chính khi sử dụng tính năng tempAgent (aka "Web Deploy on Demand"): http://technet.microsoft.com/en-us/library/ee517345(v=ws.10).aspx –

2

Cách này ăn quá nhiều giờ trong thời gian của tôi. Tôi đã có Triển khai Web hoạt động cho các trang web khác của mình. Tôi quyết định thêm một trang web mới vào máy chủ của mình và cố triển khai nó (nhưng vô tình để lại cùng một tên "Site/application" do lỗi sao chép/dán quá mức). Việc xuất bản thành công, nhưng khi tôi nhận ra tôi đã xuất bản lên trang web sai (thay vì trang web mới), tôi đã thay đổi tên trang web và cố gắng triển khai lại nhưng tôi vẫn gặp phải lỗi này. Tôi đã thử tất cả mọi thứ vào cuối IIS của sự vật. Cuối cùng, tôi chỉ cần tắt hoàn toàn Visual Studio 2010 của tôi. Đã mở nó trở lại, đã thử xuất bản lại và nó đã hoạt động!

Khi nghi ngờ, hãy tự hỏi, "Bạn đã thử tắt rồi bật lại?"
Tôi nhận ra lời khuyên này sẽ không giúp mọi người với lỗi mơ hồ này - chỉ một vài lựa chọn.

0

Nếu người dùng của bạn là một admin, nhưng bạn vẫn nhận được

ERROR_USER_IS_NOT_ADMIN

hãy chắc chắn rằng bạn đang sử dụng tên người dùng đầy đủ.

MyMachineName\MyWebDeployUser

0

Tôi nghĩ vấn đề của bạn là thực sự đơn giản ... Tôi đã cùng một vấn đề mà bạn ...

Trong thực tế vấn đề của tôi là các dịch vụ mạng là Account Logon trong Web Triển khai Agent dịch vụ và nó Tài khoản chưa đủ quyền để thay đổi hoặc đọc IIS Files ...

để giải quyết vấn đề của bạn chỉ cần làm theo các bước sau:

mở dịch vụ Painel (services.msc)
Tìm Web Triển khai Agent Service và Nhấp đúp để mở Web Triển khai Agent Service tính ... Tại Đi Vào tab thay đổi "Đăng nhập vào như" tới tài khoản quản trị ...

Tôi hy vọng sẽ giúp bạn

0

Hôm qua tôi đã có thể triển khai tốt, hôm nay đã có thông báo lỗi chính xác này. Sau một hoặc hai giờ khắc phục sự cố, tôi đã xóa tên miền khỏi tên người dùng của mình. Trước đó [tên miền]/[tên người dùng], tôi đã đổi tên thành [tên người dùng], lo 'và nhìn kìa, nó bắt đầu hoạt động trở lại. Tôi biết đây không phải là một câu trả lời tuyệt vời, nhưng có lẽ nó sẽ giúp người khác chạy qua nó.

4

Cuối cùng tôi đã có thể nhận được bản dựng tự động của mình và triển khai chạy bằng NTLM. Tôi chỉ muốn tóm tắt những gì nó cần để có được nó trong trường hợp nó là hữu ích cho bất cứ ai. Đây là với IIS 7.5.

  1. Đặt các thiết lập registry và khởi động lại dịch vụ quản lý Web (WMSVC):

    reg add HKLM \ Software \ Microsoft \ WebManagement \ Server/v WindowsAuthenticationEnabled/t REG_DWORD/d 1

  2. Hãy cho người dùng đang chạy quyền dịch vụ xây dựng TFS trong thư mục trang web.

  3. Dưới đây là các đối số MSBuild mà tôi đã sử dụng. Thay thế các tên khác nhau bằng tên của bạn. Tôi đã sử dụng DEV và CPU bất kỳ. Tôi cũng cần phải cho phép một chứng chỉ không đáng tin cậy.

    /m/p: PublishProfile = DEV/p: Cấu hình = DEV/p: Nền tảng = "Bất kỳ CPU"/p: DeployOnBuild = true/p: AllowUntrustedCertificate = true/p: AuthType = NTLM

  4. Trong IIS Manager với trang web đích được chọn, hãy mở IIS Manager Permissions và cho phép người dùng đang chạy dịch vụ xây dựng TFS.

Truy tìm rất hữu ích trong việc chẩn đoán sự cố. Bạn có thể bật truy tìm trong Ủy nhiệm quản lý dịch vụ trong IIS Manager. Ban đầu tôi không thể nhìn thấy Đoàn đại biểu dịch vụ quản lý trong IIS Manager. Để hiển thị, tôi phải 'thay đổi' Triển khai Web từ Thêm Chương trình để Ủy quyền Dịch vụ Quản lý được cài đặt. Có vẻ như nó đã được cài đặt nhưng tôi đã đặt lại trình đơn thả xuống để cài đặt vào máy tính của mình và hoàn thành quá trình cài đặt. Sau đó nó xuất hiện trong IIS Manager.

0

Web Triển khai ngừng làm việc cho chúng ta ngày hôm qua khi sử dụng danh tính hiện hành Windows của người dùng (nó làm việc với các thông tin rõ ràng) sau khi cài đặt bản vá lỗi cho MS15-025MS15-027 trên một trong các bộ điều khiển miền của chúng tôi đang chạy Windows Server 2003.

Chúng tôi đã kiểm tra tất cả các đề xuất cho Web Deploy và không thể giải quyết lỗi HTTP 401.2.

Bây giờ, Microsoft phát hành lại các bản vá cho cả hai bản tin đặc biệt cho Windows Server 2003 (KB3033395-v2 và KB3002657-v2). Sau khi cài đặt các bản vá lỗi cập nhật và khởi động bộ điều khiển miền, nó hoạt động trở lại ngay lập tức. Chúng tôi thậm chí không phải khởi động lại bất kỳ dịch vụ nào trên máy chủ Web.

Không có mục nhập nhật ký sự kiện nào trỏ đến điều này, nó chỉ trở nên rõ ràng vì quan hệ thời gian.

0

Có một khả năng khác: tài khoản của bạn đã bị khóa do quá nhiều lần thử triển khai không thành công với triển khai web. Đặt lại tài khoản của bạn hoặc yêu cầu quản trị viên hệ thống của bạn thực hiện việc đó cho bạn. Rất bực bội.

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