приложение службы Windows, взаимодействующее с базой данных сервера SQL - PullRequest
0 голосов
/ 24 декабря 2010

У меня есть приложение-служба Windows, которое предназначено для взаимодействия с базой данных сервера SQL (INSERT, UPDATE, ETC).Приложение службы Windows также является многопоточным.

Я создал папку "App_Data" для хранения своей базы данных и использовал файл app.config для информации о соединении и т. Д.

После установки ипри запуске службы ничего не происходит, база данных не обновляется и т. д.

Кто-нибудь когда-либо писал приложение службы Windows, которое взаимодействует с базой данных?Пожалуйста, посоветуйте мне, как решить эту проблему ..

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 декабря 2010

Насколько мне известно, папка App_Data и, следовательно, строки подключения, указывающие на нее, доступны только в веб-приложениях и веб-сайтах ASP.NET - не в других типах приложений Windows.

Моя рекомендация: разместите базу данных SQL Server на сервере базы данных - это может быть локальный компьютер и базу данных SQL Server Express - и подключитесь к этому экземпляру сервера!

0 голосов
/ 24 декабря 2010

Из того, что вы описали, не обязательно возникла проблема с базой данных.Что вам нужно, это способ отладки службы Windows.В частности, OnStart.

Вот что я часто помещаю в OnStart в службе Windows, написанной на C #

 protected override void OnStart(string[] args)
     {
        foreach (string arg in args)
        {
            if (arg == "DEBUG_SERVICE")
                    DebugMode();

        }

         #if DEBUG
             DebugMode();
         #endif

         timer.Interval = 1;
         timer.Start();

        }

    private static void DebugMode()
    {

        Debugger.Break();
    }

Теперь, когда вы хотите отладить OnStart, вы можете добавить команду "DEBUG_SERVICE"аргумент из панели управления службами.В противном случае вам придется попробовать подключить отладчик вручную, что может быть не вовремя.

Также обратите внимание, как я запускаю таймер.Это позволяет отдельному потоку выполнять фактическую работу.Это важно, потому что вы хотите, чтобы OnStart завершался своевременно.Таймер не требуется, потому что некоторые службы Windows отвечают на событие, например, средство просмотра файлов, но чаще всего нет, кажется, что опрос с интервалами - это то, что люди делают в службах Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...