Остановить Linq2SQL, используя именованные каналы? - PullRequest
2 голосов
/ 25 марта 2009

У меня есть симпатичный маленький проект Linq2SQL, однако при развертывании база данных находится на другом сервере. Я продолжаю получать сообщение об именованном канале, что удаленный сервер не существует - но он есть, у него включен именованный канал (протокол + поверхность) SQL 2005. TCP-соединения работают нормально.

Я попытался установить для библиотеки в строке подключения значение TCP, я попытался принудительно установить TCP в имени сервера, однако Linq всегда использует только именованные каналы и просто не работает.

Есть идеи, как заставить Linq2SQL использовать только TCP / IP, если это возможно?

спасибо

Ответы [ 3 ]

2 голосов
/ 25 марта 2009

Я предполагаю, что вы не устанавливаете для строки подключения значение None в файле конструктора DBML, который создает для вас контекст типизированных данных. Задайте для строки подключения значение Нет (убедитесь, что на конструкторе ничего не выбрано), а затем передайте строку подключения вручную, чтобы убедиться, что у вас есть полный контроль над ней.

Как отмечено в комментариях, вы не можете установить строку подключения в none.

В этом случае все еще существует перегрузка набранного DataContext, который принимает строку подключения в качестве параметра. Я бы порекомендовал сначала использовать жестко закодированный, чтобы посмотреть, работает ли он. Если это так, то вы знаете, что это разрешение элемента из файла конфигурации. В противном случае вы знаете, посмотрите на саму строку подключения.

Кроме того, если проблема связана с разрешением в файле конфигурации, я обычно помещаю это в раздел строки подключения FIRST , чтобы очистить записи из файла machine.config:

<clear />
0 голосов
/ 22 апреля 2009

Я видел, как это происходило, когда (любой из них):

  • Версия клиента SQL не та, которую вы ожидаете
  • Аутентификация Windows используется, часто непреднамеренно
  • Предоставленная вами информация о соединении не совпадает с собственным именем сервера. (То есть select @@server_name не возвращает то же самое, что и имя NETBIOS. Исправьте с помощью sp_dropserver и sp_addserver)

Иногда переустановка MDAC на клиентском компьютере помогает, по-видимому, потому что драйвер выглядел так, как будто он был там, но не работал полностью.

Надеюсь, это поможет ...

0 голосов
/ 17 апреля 2009

Как насчет изменения порядка протоколов в диспетчере SQLConfiguration или с помощью командного инструмента, cliconfig на клиенте и его изменения там.

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