Erro SqlConnection se o EXE for executado no caminho da rede

Em primeiro lugar: tudo o que você ler neste post acontece se a atualização do Windows 10 de abril de 2018 estiver instalada. Sem problemasantes instalação edepois de atualização de desinstalação.

Após instalar a atualização do Windows 10 1803, todo o meu programa VB (VB6, .NET e WPF) em execução na unidade mapeada em rede ou no caminho UNC não pode se conectar ao servidor SQL, não há problema se o mesmo executável for colocado e executado a partir da unidade local (testada em 2 pc na mesma rede):

Servidor SQL remoto, exe na unidade local:Está bemMesmo servidor SQL remoto,mesmo exe na unidade de rede mapeada (com acesso total de leitura / gravação):ERRO

Este é o erro (talvez não seja significativo para resolver este problema):

Ocorreu um erro relacionado à rede ou à instância ao estabelecer uma conexão com o SQL Server. O servidor não foi encontrado ou não estava acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. (provedor: Interfaces de rede SQL, erro: 26 - Erro ao localizar servidor / instância especificada).

Código VB.NET simples para reproduzir o problema (coloque o código de forma simples com um botão no evento button_click, defina valores para conectar-se ao servidor SQL, compile, salve o arquivo exe no caminho da rede e execute-o):

Dim myConnectionString As String
Dim mySqlConnectionStringBuilder As New SqlConnectionStringBuilder()
mySqlConnectionStringBuilder.DataSource = myServer
mySqlConnectionStringBuilder.InitialCatalog = myDatabase
mySqlConnectionStringBuilder.UserID = myUtente
mySqlConnectionStringBuilder.Password = myPassword
myConnectionString = mySqlConnectionStringBuilder.ConnectionString

Dim mySqlConnection As New SqlConnection(myConnectionString)
mySqlConnection.Open()  <- error

Exceção:

System.Data.SqlClient.SqlException (0x80131904): Si è verificato un errore di rete o specifico dell'istanza mentre si cercava di stabilire una connessione con SQL Server. Il server non è stato trovato o non è accessibile. Verificare che il nome dell'istanza sia corretto e che SQL Server sia configurato in modo da consentire connessioni remote. (provider: SQL Network Interfaces, error: 26 - Errore nell'individuazione del server/dell'istanza specificata)
   in System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager)
   in System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   in System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   in System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   in System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   in System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   in System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   in System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   in System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   in System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   in System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
   in System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   in System.Data.SqlClient.SqlConnection.Open()
   in RiepilogoOreTimer.RiepilogoOreTimerWindow.ConnessioneOK()
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:-1,State:0,Class:20

Alguma ideia?

Atualizar: Se eu desinstalar a atualização de abril de 2018, o problema desaparecerá e o programa funcionará bem, mesmo se executado em uma unidade de rede, mas essa não pode ser a solução ...

Atualização 08/05/2018: Notei que a atualização de abril de 2018 trouxe algunsmudanças na segurança:

O Windows 10, versão 1803 fornece proteções adicionais:

Novas regras de redução de superfície de ataqueO acesso controlado à pasta agora pode bloquear setores do disco

Poderia ser a causa do problema? Como não sou gerente de segurança, não posso dizer se isso pode causar o meu problema.

Atualização 09/05/2018: Encontrei esta informação emesta postar:

A atualização 1803 do Windows 10 não abre conexões de rede em arquivos executáveis no compartilhamento SMBv1 (como Windows Server 2003)

mas não sei o que é SMBv1 ... alguém pode me ajudar?

questionAnswers(4)

yourAnswerToTheQuestion