2012-02-24 22 views
5

Tôi có một ứng dụng web và tôi đang cố gắng để triển khai nó trên một máy chủ web sử dụng MSDeploy.exe (Web Triển khai 2)vấn đề triển khai của một ứng dụng web sử dụng MSDeploy lệnh

Tôi đã thử 4 kịch bản:

  1. Qua VS2010 Publish phương pháp với các thiết lập sau:
    Xuất bản phương pháp: Web Triển khai
    Dịch vụ Url: https://MyServerName:8172/MsDeploy.axd
    trang web/ứng dụng: MyWebSiteName 012.Cho phép không đáng tin cậy: đã chọn
    Tên người dùng: MyUsername
    Mật khẩu: MyPassword
    Phương pháp này chỉ hoạt động tốt.
    Trên máy MyServerName tôi có Dịch vụ quản lý web đang chạy; Tôi có một trang web MyWebSiteName, một ứng dụng MyWebAppName và MyUserName là một IIS Manager cho nó.

  2. Qua VS2010 Publish phương pháp với các thiết lập sau:
    Xuất bản Phương pháp: Web Triển khai
    Dịch vụ Url: https://MyServerName:8172/MsDeploy.axd
    trang web/ứng dụng: MyWebSiteName/MyWebAppName
    phép không tin cậy: kiểm tra
    Tên đăng nhập: myusername
    Mật khẩu: MyPassword
    Phương pháp này hoạt động tốt.

  3. Qua dòng lệnh MSDeploy.exe (trong vòng một kịch bản Powershell)
    $ Source = "contentPath = '...._ PublishedWebsites \ MyWebApp"
    $ Destination = "contentPath = MyWebSiteName, ComputerName =' https: //fc-wapps-trial:8172/MsDeploy.axd?Site=WebSiteTest',Username=MyUsername,Password=MyPassword,AuthType=basic "
    MSDeploy -verb: sync -source: $ Source -dest: $ Destination -allowUntrusted
    Phương pháp này cũng hoạt động tốt.

  4. Qua dòng lệnh MSDeploy.exe (trong vòng một kịch bản Powershell)
    $ Source = "contentPath = '...._ PublishedWebsites \ MyWebApp"
    $ Destination = "iisApp = MyWebSiteName/MyWebAppName, ComputerName =' https: // fc-wapps-trial: 8172/MsDeploy.axd? Trang web = WebSiteTest/MyWebAppName ', Tên người dùng = MyUsername, Mật khẩu = MyPassword, AuthType = basic "
    MSDeploy -verb: sync -source: $ Source -dest: $ Destination -allowUntrusted
    Phương pháp này không hoạt động. Tôi nhận được lỗi sau.
    Mã lỗi: ERROR_USER_UNAUTHORIZED
    Thông tin khác: Đã kết nối với máy tính đích ("MyServerName") bằng Dịch vụ quản lý web nhưng không thể ủy quyền. Đảm bảo rằng bạn đang sử dụng đúng tên người dùng và mật khẩu, trang web bạn đang kết nối tồn tại và thông tin xác thực đại diện cho người dùng có quyền truy cập trang web.
    Lỗi: Máy chủ từ xa trả về lỗi: (401) Không được phép.

tôi đang tìm kiếm tại actuall MSDeploy lệnh là những gì mà các phương pháp 2 sử dụng và tôi đã nhận một cái gì đó như:
msdeploy.exe
-source: manifest =' ... \ MyWebApp.SourceManifest.xml '
-dest: auto, ComputerName =' https: // MyServerName: 8172/MsDeploy.axd? Site = WebSiteTest ', Tên người dùng =' MyUsername ', Mật khẩu =' MyPassword ', IncludeAcls =' False ', AuthType =' Basic '
-verb: sync
-disableLink: AppPoolExtension
-disableLink: ContentExtension
-disableLink: CertificateExtension
-skip: objectname = 'dirPath', absolutepath = '... \ App_Data $'
-setParam: kind = 'ProviderPath', scope = 'IisApp', match = '^ .. . \ PackageTmp $', value = WebSiteTest/WebAppTest
-setParam: loại = 'ProviderPath', phạm vi = 'setAcl', trận đấu = '^ .. \ PackageTmp $', value = WebSiteTest/WebAppTest
-allowUntrusted
-retryAttempts = 2
Bây giờ điều này dường như không gần với những gì tôi đang sử dụng trong phương pháp 4. Tôi đã cố gắng chạy nó mà không thành công, nhưng tôi cho rằng tôi không thể tạo lại tất cả các tham số đó một cách chính xác.

Vì vậy, câu hỏi của tôi là:
- Tôi đang làm gì sai trong phương pháp 4?
- Làm thế nào tôi có thể triển khai một ứng dụng web như một ứng dụng trang web trong IIS7 sử dụng MSDeploy.exe lệnh


Cảm ơn trước sự giúp đỡ của bạn
Iulian

+0

Làm cách nào bạn thực hiện "... nhìn vào lệnh MSDeploy actuall mà phương thức 2 sử dụng" là gì? –

+0

Tôi nghĩ bạn có thể tìm câu trả lời [ở đây] (http://sedodream.com/2010/11/04/WebDeployHowToSeeTheCommandExecutedInVisualStudioDuringPublish.aspx). Vâng, ông nói MS sử dụng MSDeploy Object Model theo mặc định khi xuất bản nhưng bạn có thể thay đổi điều đó. –

Trả lời

7

Tôi chạy vào cùng một vấn đề như bạn đã làm. Tôi đã giải quyết nó bằng cách chỉ sử dụng tên trang web trong https://computername:8172/msdeploy.axd?site= {websitenameonly}. Sau đó thiết lập đường dẫn ứng dụng web của bạn trong tham số bằng cách sử dụng -setParam IIS Web Application Name = {tên ứng dụng web của bạn tại đây} hoặc sử dụng một tệp tham số. Và mọi thứ được triển khai tốt.

Dường như giá trị chuỗi truy vấn trang web là bắt buộc để chỉ cho phép yêu cầu. Tôi đã không tìm thấy bất kỳ tài liệu dứt khoát từ MS trên bất kỳ tham số chuỗi truy vấn nào khác có thể giải quyết vấn đề này. Nhưng tôi thực sự đã thử nghiệm 2 trường hợp. 1) Triển khai đến một trang web trong IIS 7.5, tham số này là bắt buộc. 2) Triển khai một ứng dụng web dưới một trang web, tham số này thực sự là tùy chọn, nhưng nếu bạn muốn bao gồm nó, thì nó phải là một trang gốc.

Bạn thực sự đã trả lời câu hỏi của riêng bạn ở đây có thể không nhận ra câu hỏi đó.

+0

Tôi xin lỗi để đánh dấu nó là một câu trả lời hợp lệ với sự chậm trễ đó! –

0

Vui lòng kiểm tra Đoàn đại biểu dịch vụ quản lý của bạn (nếu bạn chưa có). Bấm vào trang chính trong Trình quản lý IIS để hiển thị tất cả các tùy chọn Triển khai Web trong bảng điều khiển trung tâm. Ở phía dưới (qua ASP.NET, IIS, v.v.), trong phần Quản lý, bạn sẽ thấy một số tùy chọn, bao gồm "Quản lý dịch vụ ủy quyền".

Dưới cấu hình này là tất cả ngữ cảnh của Nhà cung cấp mà bạn có thể chạy và đường dẫn/loại bạn có thể sử dụng chúng (và dưới tên người dùng, v.v ... có thể khá chi tiết). Hãy chắc chắn rằng loại nhà cung cấp mà bạn đang cố gắng giao tiếp dưới (iisApp, contentPath, v.v.) không chỉ được liệt kê, mà còn có đường dẫn/phạm vi mà bạn yêu cầu và bạn đang hoạt động theo các quyền đã bị xóa .

Hãy nhớ rằng: bạn không phải sử dụng người dùng kiểu quản trị viên nếu ủy quyền được thiết lập chính xác. Và bạn đã truy cập vào quyền quản lý IIS của trang web hiện hành và thêm một người dùng được phép, như Domain \ User, hoặc thậm chí là một người quản lý IIS tùy chỉnh.

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