2012-08-27 27 views
0

在開發環境中,我使用Visual Studio中的ASP.NET配置工具創建一些用戶進行測試。當我更接近質量保證和生產時,我想知道在應用程序部署之後,如何自動創建大量(1000人)的用戶,這是最好的方式。批量創建用戶帳戶到生產環境中的asp.net mvc3成員表

我有一個csv與所有的用戶名和密碼,角色等,我不想利用內置的加密和密碼salting安全。我不想手動「註冊」所有這些用戶。 我只是不確定這是我能做的事情(或者指示db管理員爲我執行)。

有沒有人知道一種方法來實現這一目標?

任何援助將不勝感激。

Regards

+0

我可能會做一個PowerShell腳本或一個小的控制檯應用程序來解析該Excel,並將其泵入數據庫,然後只是擺脫它。如果在控制檯應用程序中,您只需首先將數據庫添加到EF數據庫中,然後使用秒進行排序,並且可以在那裏獲取該數據。您也可以檢查大多數具有excel文件導入功能的數據庫,因此您可以直接執行此操作。 http://www.dreamincode.net/forums/topic/72989-how-to-transfer-data-from-excel-to-db-tables/ –

+0

感謝您的評論。我一直在使用aspnet_regsql.exe來在服務器上生成數據庫。我想我可以寫些東西來讀取csv並自己調用註冊方法。我只是想知道這種類型的東西是否存在「最佳實踐」或已確立的方法。 – Dubh

+0

問題:你爲什麼要自動完成一次只需要做一次的任務 - 或者是否需要一直重複部署Excel表單數據? –

回答

2

最簡單的解決方案是設置一個「CSV上傳」表單。該CSV將由MVC動作在循環中調用Membership.CreateUser進行處理。

也許,這樣的表現會足夠好。

+0

現在可能是我最好的選擇。謝謝。 – Dubh

1

我知道有幾種方法可以解決ASP.NET網站上的批處理問題。

由於ASP.NET站點的應用程序池可以循環使用,因此批處理通常是在外部進程上完成的。

Windows服務

一種方式是一個獨立的窗口服務,它獲取新的Excel和泵的數據,並具有源源不絕的計時器。我經常見到這種情況,這很痛苦,因爲它需要額外的工作才能使其易於部署。 Update ASP.Net membership from windows service

CacheItem

第二種方法是使用CacheItems及其過期定時器做批量處理,你要做的就是定義一個緩存對象用長定時器,當過期和被切除回調被調用,你做你的數據庫工作。這很好,因爲它與你的ASP.NET站點一起部署,並且你的代碼在一個合理的地方。 http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

Workflow Foundation的

第三條道路,就是使工作流的基礎服務。該服務從您的ASP.NET站點獲得一個調用,該站點實例化一個WF服務,這個服務會執行一些數據庫與您的Excel文件一起工作,然後進入一個while循環並延遲一個月。這很好,因爲它不會與ASP.NET應用程序池的生命週期相關聯 - 您可以獲得更多控制權,並且可以將此邏輯分成不同的IIS託管的WCF服務。 http://msdn.microsoft.com/en-us/library/dd489452.aspx

與數據集成總是很痛苦,請記住,部署時爲您提供最少的工作和最小的失敗機率的解決方案是最佳解決方案。

+0

感謝您的建議和幫助。我決定我可能會用簡單的東西去。 – Dubh