摘要
我們有一個ASP.NET應用程序,允許用戶通過一箇中間層查詢SQL Server數據庫(相當標準的東西) 。當用戶嘗試爲返回給他們的行生成PDF時。每一組具有共同標識符的行將「轉入」PDF中的單獨頁面。
如何背景時間/ IO耗時跨防火牆的操作在ASP.NET C#
本來,我認爲行數將是一個數量級,有利於將最終的PDF傳輸到ASP響應流,並讓用戶將文件下載到他們的機器中,但是更新的要求表明行數非常大,並且大大超出了我設計的範圍。
我目前的解決方案如下:
如果返回的行數是大於配置
threshold
值越大,用戶得到,詢問他們是否要生成的PDF格式的一條消息背景並在完成後通過電子郵件通知URL,以便他們可以下載它們。如果用戶可以接受,我創建兩個
DataTable
s:一個包含實際數據,另一個包含MetaData,例如保存生成的PDF,名稱和其他元類型信息的位置。然後,我可以使用
DataTable.WriteXML
在特定文件夾中生成「作業」文件。這是全部在一個單獨的線程中完成的,因此用戶可以繼續做他們想做的事情。
問題:
我真的想一臺機器上工作的XML文件存儲在我們的防火牆(共享的網絡文件夾)中,但似乎我不能出於安全原因。我被告知我可能想要使用模擬並已嘗試但無法使其工作。
該應用程序的其他部分是「監聽」到「輸入」文件夾,並每小時(或類似計劃)處理這些「作業」文件一次,將生成的PDF文件移動到必要的位置,向用戶發送電子郵件。
我已經獲得了讀取作業文件並生成PDF的部分,並且創建作業文件的部分有效(當我在防火牆內部運行時),但是當我在防火牆外部運行它時,即使嘗試模仿, 這是行不通的。 (口口聲聲說「網絡位置找不到」
問題(S):??
我要對這個正確的方式
如何編寫跨防火牆這些文件
的任何設計思路或建議?
在此先感謝。
防火牆的哪一邊是SQL Server/Web服務器? (我假設它在外面?) – realworldcoder 2010-10-31 21:02:15
SQL Server位於防火牆內。 – funkymushroom 2010-11-01 16:04:47