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; 
相关问题