我需要從ASP.NET C#頁面上單擊加載並執行SSIS或DTS包,單擊按鈕並在執行結束時報告成功或失敗,如果它失敗的細節應該顯示給用戶。它需要是異步的,因爲工作可能需要很長時間才能完成。用戶應該也可以在運行時取消程序包的執行,如果他願意的話。還需要並行執行多個程序包並跟蹤每個程序包的進度。這是可能實現OR過於複雜,從ASP.NET做到這一點?如果您有任何示例代碼或鏈接,請告訴我。提前致謝。從ASP.NET異步執行SSIS或DTS包裝
回答
我解決了這個問題,方法是在表中將DTS/SSIS包執行的用戶請求排隊,然後在Windows服務中讀取它們並通過使用ThreadPool類產生線程並行執行它們。它工作正常。謝謝。這種方法的缺點是輪詢,使其事件驅動,創建一個WCF服務,並將其託管在Windows服務將是最好的,我會接下來嘗試。感謝你的回覆。順便說一句,我不能使用SQL Server代理,這是不允許的,因爲我的公司的IT政策。
您可能會考慮的解決方案是使用SQLServer作業。您可以將軟件包設置爲有或沒有運行計劃的作業。您可以通過在msdb系統數據庫中運行存儲過程和查詢來啓動,取消,獲取作業狀態並獲取失敗信息。您可以運行ASP.NET C#頁面中的過程和查詢。
在作業中運行SSIS/DTS包是常用的方法。而且,該解決方案還允許您使用Management Studio來管理這些作業。
感謝您的回覆,但這是如何工作的? SSIS/DTS包存儲在網絡服務器上。我需要在網絡服務器上創建一個作業嗎?如果是這樣,我是否需要在其上安裝SQL組件來創建作業(不確定我公司的服務器策略是否允許這樣做)?存儲過程如何知道位於其他位置的作業? – RKP 2010-08-12 13:55:51
你確定SSIS/DTS在網絡服務器上嗎?它們應該是DB的一部分... – 2010-08-12 14:16:59
是的,SSIS/DTS包不在數據庫中,它們存儲在Web服務器上的文件系統上。如果我需要創建一個作業並使用存儲過程調用它,那麼是否需要在Web服務器上安裝任何SQL組件?如果沒有,我將不得不在我原來的問題中選擇。 – RKP 2010-08-12 14:35:49
您可以使用Rhino ETL代替SSIS。這是一個功能完備的ETL庫,它允許您使用C#編寫ETL作業。
ETL ?? ahhh謝謝Google:** E ** xtract ** T ** ransform ** L ** oad – 2013-07-17 10:38:36
- 1. 2008 SSIS執行DTS 2000包帶可變
- 2. 執行SSIS包使用ASP.Net
- 3. 從ASP.NET執行SSIS包時出錯
- 4. 從Sql Server 2005執行DTS包
- 5. 通過SQL代理執行DTS 2000包時SSIS 2008失敗
- 6. 在工作中運行SSIS和DTS包的安裝要求
- 7. ASP.NET/WCF - 異步執行Server.Execute
- 8. ASP.net MVC異步執行
- 9. 從c#執行SSIS包#
- 10. 從C#執行SSIS包
- 11. 從Visual Studio SSIS包執行
- 12. 執行SSIS包
- 13. 異步調用SSIS包
- 14. 如何將DTS包轉換爲SSIS包?
- 15. 將DTS包升級爲SSIS包
- 16. 從未安裝集成服務的C#執行SSIS包裝
- 17. 如何將DTS包遷移到SSIS 2012?
- 18. 如何使SSIS包看起來像DTS
- 19. C#異步異常包裝
- 20. 異步執行
- 21. 異步執行
- 22. SSIS與DTS性能
- 23. ASP.NET異步任務執行序列
- 24. 裝載機不執行任務異步
- 25. 不能從vb6執行SSIS包
- 26. 錯誤而從作業執行SSIS包
- 27. 從遠程服務器執行SSIS包
- 28. 如何從c#執行多個ssis包#
- 29. 從SSIS包執行R腳本
- 30. 從SSIS包執行SQL文件
如果你有多個池,那麼你需要一個公共的數據庫表和一個單獨的類來處理這個並行執行的問題。不是一件容易的事,我們有這樣的一個,但我們有很多小時的工作和它的習慣。 – Aristos 2010-08-12 10:37:23