2010-04-15 29 views
16

Tôi hiện đang chạy Visual Studio Team System 2010 RC và tôi đang cố gắng thiết lập Dịch vụ Xây dựng để xây dựng giải pháp và triển khai 3 ứng dụng web trong đó . Tôi đã tạo một cấu hình xây dựng tùy chỉnh được gọi là Integration và tôi đã thiết lập "IIS Web site/application name để sử dụng trên máy chủ đích" trên tab Package/Publish của Properties cho mỗi ứng dụng web.MSDeploy không triển khai đến máy chủ từ xa bằng MSBuild và Visual Studio 2010

Trong Definition xây dựng của tôi, tôi đã thiết lập các tham số sau:

/p: DeployOnBuild = True/p: DeployTarget = MSDeployPublish/p: MSDeployPublishMethod = InProc/p: MsDeployServiceUrl = http://my-server-name:8172/msdeploy.axd/p: EnablePackageProcessLoggingAndAssert = True

Tuy nhiên, khi tôi chạy build tôi nhận được lỗi sau, cho tất cả các ứng dụng ba web:

Đang cập nhật setAcl (MyProjectName).

C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets (3481,5): lỗi: Tác vụ triển khai web không thành công. (Cố gắng thực hiện một hoạt động trái phép.)

Tôi không nghĩ đây là vấn đề thực tế của tôi. Lỗi này xảy ra sau khi mục nhập sau trong nhật ký: Cập nhật setAcl Đây là những gì gây ra thông báo lỗi, nhưng có vẻ như MSDeploy đang cố triển khai IIS cục bộ trên máy chủ Xây dựng, không phải máy chủ tôi đã chỉ định với tham số MsDeployServiceUrl .

Sau khi xem tệp mục tiêu tại C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets, tôi đã thêm EnablePackageProcessLoggingAndAssert, bổ sung thêm ghi nhật ký. Nhật ký hiển thị một chuỗi trống cho giá trị của MsDeployServiceUrl. Tôi cũng nhận thấy trong mục tiêu rằng MsDeployServiceUrl có một chữ thường, điều này hơi khó hiểu vì tên tác vụ MSDeployPublish có chữ hoa S. Tôi đã thử sử dụng nó bằng chữ hoa, sau đó lại sử dụng chữ thường, nhưng không hoạt động.

Một vài điều khác cần lưu ý:

  1. dịch vụ xây dựng của tôi đang chạy như NETWORK SERVICE.
  2. Máy chủ tôi đang cố gắng triển khai ở miền khác là .
  3. Tôi cũng đã thử thêm /p: tên người dùng = mydomain \ myusername /p: password = mypassword vào danh sách tham số MSBuild, nhưng điều đó không hữu ích.

Có ai biết tôi đang cung cấp thông số chính xác không? Hoặc cung cấp cho tôi những cái đúng?

Cảm ơn

Trả lời

25

Sau nhiều vòng thay đổi tham số, tôi đã có thể tìm thấy giải pháp và xây dựng để triển khai thành công. Các thông số mà tôi đã kết thúc sử dụng là:

/p:DeployOnBuild=True 
/p:DeployTarget=MSDeployPublish 
/p:MSDeployPublishMethod=**RemoteAgent** 
/p:MsDeployServiceUrl=http://my-server-name 
/p:username=myusername 
/p:password=mypassword 

Dường như khi sử dụng InProc cho MSDeployPublishMethodMSBuild bỏ qua MsDeployServiceUrl và luôn cố gắng để triển khai đến các máy chủ địa phương. Tôi đã đổi thành RemoteAgent và nó đã triển khai thành công. Tôi đã nhận thấy rằng tệp Package là nolonger có trong thư mục MyWebApplication_Package, nhưng đó không phải là vấn đề lớn đối với tôi.

+2

Bạn có tài liệu tham khảo nơi bạn tìm thấy thông tin này không? Tài liệu cho điều này rất thưa thớt. – felickz

+0

thử sử dụng/p: MSDeployPublishMethod = WMSVC –

+0

Các dấu hoa thị đó trong ** RemoteAgent ** là gì? –

0

Xét vs2010 là RTM'd, bạn có thể cân nhắc việc nâng cấp và xem sự cố có biến mất hay không.

+0

Tôi muốn nâng cấp lên RTM VS 2010, nhưng chúng tôi đang ở giữa dự án và chúng tôi hy vọng sẽ đợi cho đến khi quá trình phát triển hoàn tất để thực hiện nâng cấp. Nếu đó là một lỗi trong RC, chúng tôi có thể phải nâng cấp sớm hơn, nhưng tôi muốn xác minh rằng tôi đang sử dụng các thông số chính xác đầu tiên. –

0

Để xây dựng Team Build đang chạy tệp nào bạn chỉ định? Nếu đó là một tệp giải pháp thì chỉ cần chuyển các thuộc tính đó vào nó không có nghĩa là chúng được truyền cho từng tệp dự án khi được xây dựng. Khi bạn xây dựng các tệp giải pháp, chỉ một bộ thuộc tính giới hạn được chuyển đến các dự án đang được xây dựng.Nếu đây là trường hợp bạn nên tạo một tệp .proj mà về cơ bản sẽ thay thế tệp giải pháp của bạn và chuyển vào các thuộc tính này.

Gần đây, tôi đã viết blog về how to Replace your solution file with an MSBuild file.

Hãy cho tôi biết nếu điều này không áp dụng cho bạn hoặc không giúp bạn.

FYI bạn cũng có thể quan tâm đến chủ đề khác này trên MSDeploy, nhưng không phải vấn đề tương tự khi bạn có ở đây. How can I get TFS2010 to run MSDEPLOY for me through MSBUILD?.

+0

Tôi đang sử dụng một tệp giải pháp, nhưng điều đó dường như không phải là vấn đề. Chỉ cần thay đổi MSDeployPublishMethod thành RemoteAgent đã khắc phục được sự cố. –

+0

OK, rất vui khi biết bạn đã bình phương đi. –

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