Shery.md Ответов: 7

Проблема в подключении служба Windows для SQL-сервера


Привет

Я создал службу windows для передачи данных из локальной базы данных на SQL Server через интернет, но соединение всегда терпело неудачу, хотя одно и то же соединение работает очень хорошо в приложении Windows Form, нужна ли службе Windows специальная строка подключения или конфигурация для подключения к sql server, или я что-то упустил

любой может мне помочь
---------------------------------------------------
Привет еще раз

Спасибо за весь ваш ответ , но у меня все еще есть та же проблема соединение работает в приложении windows, но не работает в приложении служб, пожалуйста, найдите ниже код надеюсь, что кто-нибудь может мне помочь


учетная запись службы:
Записи localservice

строка подключения
имя="myconn" имя_поставщика="системы.Данных.Sqlclient как" свойства connectionString="источник данных=\именем sqlexpress IP-адресов сервера;
Начальный каталог=база данных; идентификатор пользователя=имя пользователя; пароль=mypassword"

Код
Параметры ConnectionStringSettings = диспетчер конфигураций.ConnectionStrings["myconn"];
SqlConnection destConnection = новый SqlConnection(настройки.Метод toString ());
строке destconnection.Открыть();


Исключение
При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром.
Сервер не был найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что
SQL Server настроен на разрешение удаленных подключений.
(поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка определения местоположения указанного сервера/экземпляра)

Dylan Morley

Есть ли сообщения об ошибках \ исключениях?

7 Ответов

Рейтинг:
2

Mr. Mahesh Patel

проверьте следующие пункты.
1. Если вы определяете строку подключения в файле app.config в разделе <appSettings>
Тогда, пожалуйста, попробуйте определить его в &л;настройки и GT; раздел &ЛТ;параметр connectionString&ГТ;.

2. Если вы уже сделали пункты один, то проверьте, что ссылка системы.Конфигурация дается сервису или нет.

3. Если вы также уже сделали пункт № 2, то убедитесь, что вы не пытаетесь получить значение строки соединения из функции, я имею в виду, из конструктора или чего-то еще.

Если все вышеперечисленные 3 пункта в порядке, то
Можете ли вы вставить свой код подключения обоих устройств в эту приборную панель?

После этого я помогу тебе.
Потому что я создал много служб windows точно так же, как ваш подход.
и я думаю, что помогу тебе.

Махеш Патель
MCA-2010


Shery.md

Прежде всего спасибо за ваш ответ

Я проверил все вышесказанное, но все еще есть проблема с подключением сервера

пожалуйста, найдите ниже мой код подключения


строка подключения
+++++++++++++++++
имя="myconn" имя_поставщика="системы.Данных.Sqlclient как" свойства connectionString="источник данных=\именем sqlexpress IP-адресов сервера;
Начальный каталог=база данных; идентификатор пользователя=имя пользователя; пароль=mypassword"

Код
+++++
Параметры ConnectionStringSettings = диспетчер конфигураций.ConnectionStrings["myconn"];

SqlConnection destConnection = новый SqlConnection(настройки.Метод toString ());

строке destconnection.Открыть();


Исключение
+++++++++++
При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром.
Сервер не был найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что
SQL Server настроен на разрешение удаленных подключений.
(поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка определения местоположения указанного сервера/экземпляра)

raja.dinakaran.c.r

Я не могу передать значение строки подключения,как вы сказали, из конфигурации приложения оно передается в службу как нулевое значение.
/////////////////////
использование системы.Конфигурация;
/////////////////////////////
SqlConnection con = new SqlConnection(ConfigurationSettings.Параметр Appsettings["Соединения"].Метод toString());
///////////////////////////////////////////

<конфигурация>
&ЛТ;добавить имя="connectionString в" свойства connectionString="источник данных=Имя_сервера; начальный каталог=Имя_бд;идентификатор пользователя=СА;пароль=пароль"и GT;

Пожалуйста, Ответьте .

Заранее поздравляю вас.
Спасибо.

Рейтинг:
2

Mr. Mahesh Patel

Привет дорогая,

Пожалуйста, проверьте также нижеприведенный пункт.

идти к диспетчер конфигурации sql server.

Теперь, Под Диспетчер конфигурации сети SQL Server -
Проверьте, что -
именованный канал = Включенный
и TCP/IP = Включенный

И строки декларации пользователя вместо

ConnectionStringSettings


Как
string settings =Convert.ToString(ConfigurationManager.ConnectionStrings["myconn"]);


Рейтинг:
0

Stephen Hewison

Мое лучшее предположение заключается в том, что вы используете проверку подлинности windows для подключения к SQL?

В этом случае необходимо убедиться, что пользователь, под управлением которого запущена служба, имеет разрешения в SQL.

Если вы посмотрите в системе, административных инструментах, сервисах и найдете свой сервис. Вы можете настроить учетные данные, связанные с ним.

При запуске приложения windows form контекст безопасности, в котором оно выполняется, - это контекст безопасности пользователя, вошедшего в систему. Этот контекст безопасности не сохраняется при перемещении кода в службу.

Часто, когда мы устанавливаем службы, они устанавливаются в соответствии с принципами безопасности сетевой службы или локальной системы. Им не следует предоставлять доступ к SQL.

Вы также можете создать пользователя SQL и использовать строку подключения, которая реализует аутентификацию SQL вместо этого.


Shery.md

Спасибо за ваш ответ
Я готов использовать аутентификацию SQL, но все еще имею исключение
При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром.
Сервер не был найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что
SQL Server настроен на разрешение удаленных подключений.
(поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка определения местоположения указанного сервера/экземпляра)

Рейтинг:
0

Bernhard Hiller

Как правило, служба работает под учетной записью "локальная система". Эта учетная запись не может получить доступ к каким-либо сетевым / интернет-ресурсам. Измените пользователя для своей службы на пользователя с правами доступа к сети.


Рейтинг:
0

Lijo Rajan

Вам не нужно использовать что-либо конкретное для подключения к БД из службы Windows.Похоже, это проблема с вашим Sql-сервером. Не могли бы вы попробовать войти на тот же самый sql-сервер напрямую. Пожалуйста, дайте мне знать, если вы можете войти на сервер напрямую. если вы не можете войти на сервер напрямую, то возникнут некоторые проблемы с подключением к серверу БД. Вы можете выяснить это с помощью администратора БД.

Спасибо,
Лихо


Shery.md

спасибо лихо за ваш ответ
Да, я могу войти на сервер напрямую, и даже при использовании add new data source from the dot net он дает мне успешное соединение, но у меня все еще есть то же самое исключение
У вас есть какие-нибудь идеи по поводу этой проблемы

Спасибо,
Шери

homa rahmani

у меня есть такая проблема.
я сделал службу windows для отправки SMS в специальное время с чтением данных из SQL.
здесь нет никакой ошибки.
но после установки сервис не работает.
я не знаю, что делать?
спасибо за вашу помощь

Рейтинг:
0

Ye Htut

Добавьте номера портов в Friewall, чтобы разрешить Ms SQL Server
Ссылки на этот https://msdn.microsoft.com/en-us/library/cc646023(в=в SQL.120).aspx-файл


Dave Kreskowiak

Вы откопали вопрос четырехлетней давности, на который уже был дан ответ.

Рейтинг:
0

Member 14984679

Щелкните правой кнопкой мыши на сервисе выберите Свойства -> войдите в систему выберите эту учетную запись и предоставьте учетные данные, которые вы используете в соответствии со строкой подключения


Richard Deeming

Как уже было адекватно объяснено в решении 1. И снова в решении 3. Оба написаны восемь лет назад.