У нас есть огромное приложение .NET от стороннего производителя, на разборку и понимание кода которого потребовалось бы много времени. Он компилируется в режиме Release. Строки подключения к базам данных MS SQL определены в файле конфигурации и кажутся правильными. Он использует более 6 различных баз данных.
Однако, когда приложение запускается, оно выдает ошибку типа «произошла ошибка, связанная с сетью или конкретным экземпляром, при установлении соединения с sql server». Следы приложения не предоставляют достаточно информации о том, где оно пытается подключиться в случае сбоя.
Можно ли определить, какое соединение пытается открыть .NET-приложение, не зная заранее, с каким именем SQL-сервера оно пытается подключиться? Профиль SQL отслеживает соединения на стороне сервера, открытые с других машин, но какой инструмент лучше всего увидеть на конкретном компьютере, к которому он подключается, SQL-сервер (с возможностью также видеть неуспешные соединения)
Понюхайте трафик, потому что это единственный способ убедиться.
Шутки в сторону. Понюхайте трафик. Нет ничего лучше, чем устранение неполадок черного ящика, отправляющего подобное сообщение посредством сниффинга.
Если вы против использования стороннего программного обеспечения, установите Монитор сети Microsoft (или новый Анализатор сообщений Microsoft).
Для клиентских подключений SQL Server по умолчанию используется TCP-порт 1433, но номер порта также может быть динамическим. Если программное обеспечение обращается к выделенным экземплярам SQL Server, установленным в качестве экземпляра по умолчанию, скорее всего, оно будет использовать порт по умолчанию.