1

В настоящее время я пытаюсь создать приложение Windows Service, которое будет отправлять почту автоматически. База данных находится в проекте MVC3 под папкой APP_DATA. Теперь мой вопрос: как я могу использовать connectionString из web.config в своем приложении Windows Service для запуска запросов в определенное время и отправлять автоматически письма пользователю, когда запросы не пустые. Я сделал некоторые исследования, но я не нашел решений. Возможно ли, что этот подход возможен? Заранее спасибоИспользуйте connectionString из Web.config в приложении для Windows

+1

Умм, если вы создаете службу WINDOWS, почему именно вы пытаетесь использовать WEB.config? Возможно, поэтому вы не нашли никаких ресурсов, чтобы учиться. – walther

+0

@walther Я настоятельно хочу запросить базу данных, которая находится в моем проекте ASP.NET MVC3. – Superbyte

ответ

1

Ваша служба Windows будет выполнена как отдельное приложение и не имеет прямого доступа к конфигурации вашего веб-приложения. Я бы предложил вам создать веб-сервис в своем веб-приложении и предоставить необходимые API-интерфейсы.

Затем вы можете использовать свою службу Windows для вызова методов веб-службы и получения необходимых данных.

EDIT: 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

ваша служба окна использует файл app.config и не web.config файла. щелкните правой кнопкой мыши на своем проекте службы Windows и выберите новый пункт в контекстном меню, затем найдите файл конфигурации приложения и нажмите «Добавить». Скопируйте строки подключения из файла web.config на веб-сайт и вставьте его в файл app.config службы Windows. альтернативно вы могли бы создать API, подобный тому, который предложил Игорь Деинека

+0

Я точно сделал то, что вы мне сказали, но это не работает. – Superbyte

+0

Когда я копирую connectionString из web.config в App.config, я получаю исключение SqlException, которое говорит мне следующее: Попытка вставить базу с автоименованием для файла C: \ User \ Superbyte \ Documents \ Visual Studio 2012 \ Не удалось выполнить проекты \ 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; 
Смежные вопросы