2010-08-12 22 views
6

Tôi cần tải và thực thi các gói SSIS hoặc DTS ASYNCHRONOUSLY từ trang ASP.NET C# khi nhấp vào nút và báo cáo thành công hay thất bại khi kết thúc quá trình thực hiện và nếu nó thất bại các chi tiết của ngoại lệ nên được hiển thị cho người dùng. nó cần phải không đồng bộ vì công việc có thể mất nhiều thời gian để hoàn thành. người dùng cũng có thể hủy bỏ việc thực hiện gói trong khi nó đang chạy nếu anh ta muốn làm như vậy. cũng có yêu cầu thực thi nhiều gói song song và theo dõi tiến độ cho từng gói. điều này có thể đạt được HOẶC quá phức tạp để làm điều đó từ ASP.NET? Vui lòng cho tôi biết nếu bạn có bất kỳ mã mẫu hoặc liên kết nào thực hiện việc này. Cảm ơn trước.thực thi gói SSIS hoặc DTS không đồng bộ từ ASP.NET

+0

Nếu bạn có nhiều hồ bơi, thì bạn cần một bảng cơ sở dữ liệu chung và một lớp riêng để xử lý việc thực thi song song này với tất cả các câu hỏi mà bạn yêu cầu. Không phải là một nhiệm vụ dễ dàng, chúng tôi có một công việc như vậy nhưng chúng tôi có nhiều giờ làm việc trên nó và rất tùy chỉnh của nó. – Aristos

Trả lời

1

Tôi đã giải quyết nó bằng cách xếp hàng các yêu cầu của người dùng đối với việc thực hiện gói DTS/SSIS trong bảng và đọc chúng trong dịch vụ windows và thực thi chúng song song với chủ đề sinh sản bằng lớp ThreadPool. nó hoạt động tốt. cảm ơn. những hạn chế của phương pháp này là bỏ phiếu, để làm cho nó sự kiện điều khiển, tạo ra một dịch vụ WCF và lưu trữ nó trong một dịch vụ cửa sổ sẽ là tốt nhất mà tôi sẽ cố gắng tiếp theo. Cảm ơn sự phản hồi của bạn. btw, tôi không thể sử dụng đại lý máy chủ sql, nó không được phép theo chính sách CNTT của công ty tôi.

1

Một giải pháp bạn có thể xem xét là sử dụng các công việc SQLServer. Bạn có thể thiết lập các gói dưới dạng công việc có hoặc không có lịch chạy. Bạn có thể bắt đầu, hủy, nhận trạng thái công việc và nhận thông tin thất bại bằng cách chạy các thủ tục và truy vấn được lưu trữ trong cơ sở dữ liệu hệ thống msdb. Bạn có thể chạy các thủ tục và truy vấn từ trang ASP.NET C# của bạn.

Chạy các gói SSIS/DTS trong công việc là một cách tiếp cận chung. Và, giải pháp này sẽ cho phép bạn sử dụng Management Studio để quản lý công việc.

+0

cảm ơn bạn đã trả lời, nhưng nó hoạt động như thế nào? các gói SSIS/DTS được lưu trữ trên máy chủ web. tôi có cần tạo công việc trên máy chủ web không? nếu vậy, tôi có cần phải cài đặt các thành phần SQL trên nó để tạo ra một công việc (không chắc chắn nếu chính sách máy chủ trong công ty của tôi sẽ cho phép điều này)? làm thế nào các thủ tục được lưu trữ sẽ biết về công việc mà nằm ở một nơi khác? – RKP

+0

bạn có chắc là SSIS/DTS có trên máy chủ web không? Chúng phải là một phần của DB ... –

+0

có, các gói SSIS/DTS không nằm trong cơ sở dữ liệu, chúng được lưu trữ trên hệ thống tệp trên máy chủ web. Nếu tôi cần tạo một công việc và gọi nó bằng cách sử dụng một thủ tục được lưu trữ, thì tôi có cần cài đặt bất kỳ thành phần SQL nào trên máy chủ web không? nếu không, tôi sẽ phải đi cho các tùy chọn trong câu hỏi ban đầu của tôi. – RKP

0

Bạn có thể sử dụng Rhino ETL thay vì SSIS. Đây là một thư viện ETL chính thức cho phép bạn mã hóa các công việc ETL của bạn trong C#.

+0

ETL ?? Cảm ơn bạn Google: ** E ** xtract ** T ** ransform ** L ** oad –

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