Нашел это.Как упомянуто на моно-сайте, источник данных в строке подключения должен иметь указанный формат.Если имя экземпляра указывается вместе с номером порта, имя хоста вместе с именем экземпляра назначается в качестве имени сервера, и соединение не устанавливается.Ниже приведен фрагмент кода из приватного bool ParseDataSource (строка theDataSource, out int thePort, out string theServerName) в mono-mono-4.8.0-branch \ mcs \ class \ System.Data \ System.Data.SqlClient \ SqlConnection.csфайл.
int idx = 0;
if ((idx = theDataSource.IndexOf (',')) > -1) {
theServerName = theDataSource.Substring (0, idx);
string p = theDataSource.Substring (idx + 1);
thePort = Int32.Parse (p);
} else if ((idx = theDataSource.IndexOf ('\\')) > -1) {
theServerName = theDataSource.Substring (0, idx);
theInstanceName = theDataSource.Substring (idx + 1);
// do port discovery via UDP port 1434
port = DiscoverTcpPortViaSqlMonitor (theServerName, theInstanceName);
if (port == -1)
success = false;
} else
theServerName = theDataSource;
Я не уверен, является ли это ожидаемым протоколом или нет, будет ли обновлен исходный код Mono или нет.Представлена информация о Git.