1

我正在嘗試構建將自動發送郵件的Windows服務應用程序。該數據庫位於項目的APP_DATA文件夾下。我現在的問題是,如何在我的Windows服務應用程序中使用web.config的connectionString在特定時間運行查詢,並在查詢不爲空時自動發送郵件給用戶。我做了一些研究,但沒有找到任何解決方案。這種方法甚至可能嗎?在此先感謝在Windows服務應用程序中使用Web.config中的connectionString

+1

嗯,如果你正在構建一個WINDOWS服務,爲什麼你正在嘗試使用WEB.config?也許這就是爲什麼你沒有找到任何可以學習的資源。 – walther

+0

@walther我非常想查詢我的ASP.NET MVC3項目中的數據庫。 – Superbyte

回答

1

您的Windows服務將作爲單獨的應用程序執行,並且無法直接訪問您的Web應用程序的配置。我建議你在你的Web應用程序中構建一個Web服務並提供必要的API。

然後,您可以使用Windows服務調用Web服務方法並檢索必要的數據。編輯: MSDN是最好的教育資源。你可以從這裏開始 http://msdn.microsoft.com/en-us/library/bb386386.aspx

+0

我可以在哪裏接受培訓? – Superbyte

0

你能夠使用一個連接:

SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString); 
+0

試過這個。它不工作,它拋出一個異常。 C:\ User \ Superbyte \ Documents \ Visual Studio 2012 \ Projects \ WindowsService1 \ WindowsService1 \ nin \ Debug \ DRMS_DB.mdf失敗。具有相同名稱的數據庫存在,或者指定的文件無法打開,或者它位於UNC共享位置。 – Superbyte

0

您的Windows服務使用一個app.config文件,而不是一個web.config文件。 右鍵單擊您的Windows服務項目並在上下文菜單中選擇添加新項目,然後查找應用程序配置文件並單擊添加。從網站上的web.config文件複製連接字符串,並將其粘貼到Windows服務的app.config文件中。 或者你可以創建一個像Ihor Deyneka建議的API

+0

我剛剛做了你告訴我的,但這不起作用。 – Superbyte

+0

當我從web.config中將connectionString複製到App.config時,我得到一個SqlException告訴我以下內容: 嘗試爲文件C:\ User \ Superbyte \ Documents \ Visual Studio 2012 \附加一個自動命名的數據庫。 Projects \ WindowsService1 \ WindowsService1 \ nin \ Debug \ DRMS_DB.mdf失敗。具有相同名稱的數據庫存在,或者指定的文件無法打開,或者它位於UNC共享位置。 – Superbyte

+0

您的Windows服務正在尋找您需要將此數據庫文件附加到您的項目的DRMS_DB.mdf。這不是解決問題的理想方法。你應該看看爲數據訪問創建一個單獨的項目,並在各種項目中引用它......這裏有一些關於如何創建n層應用程序的鏈接http://msdn.microsoft.com/en-us/library/ ms973279.aspx,http://msdn.microsoft.com/en-us/library/vstudio/bb384570.aspx,http://geekswithblogs.net/edison/archive/2009/04/05/a-simple-3-層的層的應用程序功能於asp.net.aspx – Yugz

0

你試過應用程序配置文件來代替你的web.config文件嗎?如果不嘗試使用相同的代碼讀取連接字符串。

0
string connStr = ConfigurationManager.ConnectionStrings["Your Connection String Name"].ConnectionString; 
相關問題