2013-04-16 31 views
5

Tôi đang cố di chuyển một trang web mà tôi đang lưu trữ trên máy chủ có IIS qua một trang web Azure. Tôi đang sử dụng một đối tượng COM nhưng tôi không chắc chắn nếu tôi có thể đăng ký này? Tôi tìm thấy một số bài viết nói về tải lên dll và đăng ký nó trên khởi động nhưng bài viết có vẻ là mất tích. Điều này có thể không?Đối tượng COM Azure

Trả lời

2

Bạn không thể đăng ký đối tượng COM trong Trang web Azure. Bạn sẽ cần phải nâng cấp lên Web Roles để thực hiện việc này. Việc đăng ký đối tượng com có ​​thể xảy ra trong các tập lệnh khởi động sau đó.

+0

Bạn làm như thế nào? Tôi đang xem qua bảng điều khiển nhưng không thấy bất kỳ điều gì về Vai trò web. – thecaptain0220

+1

Vai trò web là một phần của Dịch vụ đám mây. Bạn sẽ cần tạo một Dịch vụ đám mây (WebROle) trong phòng thu trực quan, thêm dự án hiện có theo nó, đăng ký tập lệnh khởi động công cụ của đối tượng COM của bạn và đảm bảo không có gì khác cần sửa/thay đổi. Ngoài ra, mong đợi rằng WebRoles sẽ chạy với ít nhất 2 máy chủ, vì vậy trạng thái & phiên cần phải tương thích với điều này – Igorek

4

Tôi đã gặp sự cố chính xác này khi đăng ký thành phần COM cũ trên Azure. Tôi ghi lại phương pháp của tôi ở đây:

AspPDF and AspJPEG on Windows Azure

Igorek là đúng, bạn sẽ cần phải sử dụng một Role Web để đạt được điều này. Giải pháp trên được dựa trên một vai trò Web duy nhất với một kịch bản khởi động để chạy regsvr32 như một nhiệm vụ khởi động.

Để tóm tắt, về cơ bản có hai phần để đạt được điều này. Đầu tiên tạo ra một tập tin batch để chạy regsvr32 lệnh:

chcp 1252>NUL 
regsvr32 /s .\library\my-com-class.dll 
exit /b 0 

Sau đó xác định một nhiệm vụ khởi động trong tập tin ServiceDefinition.csdef của bạn:

<Startup> 
<Task commandLine="mybatchfile.cmd" executionContext="elevated" taskType="simple" /> 
</Startup> 

này sẽ kích hoạt tập tin lệnh để chạy trên triển khai.

+0

Trong cấu trúc dự án bạn đặt tệp cmd ở đâu? Bạn có thể mở rộng câu trả lời một chút không? Cảm ơn bạn –