После обновления Windows 10 1803 моя программа не может открыть сокет при запуске из общего сетевого ресурса - PullRequest
0 голосов
/ 03 мая 2018

Я запускаю несколько самостоятельно написанных приложений Winforms .net 3.5 из общей папки в Windows 10.

Все работало правильно, но после последнего большого обновления (1803) приложение больше не запускается.

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

2018-05-03 14:36:32,314 [1] ERROR NHibernate.Transaction.AdoTransaction [(null)] - Begin transaction failed
MySql.Data.MySqlClient.MySqlException: Unable to connect to any of the specified MySQL hosts. ---> System.Net.Sockets.SocketException: invalid argument
   at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
   at MySql.Data.Common.MyNetworkStream.CreateSocketStream(MySqlConnectionStringBuilder settings, IPAddress ip, Boolean unix)
   at MySql.Data.Common.MyNetworkStream.CreateStream(MySqlConnectionStringBuilder settings, Boolean unix)
   at MySql.Data.Common.StreamCreator.GetStream(MySqlConnectionStringBuilder settings)
   at MySql.Data.MySqlClient.NativeDriver.Open()

Я пытался обойти эту проблему, но даже доступ к SSH-серверу не работал, когда программа запускалась из общего сетевого ресурса:

2018-05-03 14:30:30,654 [1] ERROR WinForms.SpringApplication [(null)] - Main Handler
Tamir.SharpSsh.jsch.JSchException: System.Net.Sockets.SocketException: invalid argument
   at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
   at Tamir.SharpSsh.java.net.Socket..ctor(String host, Int32 port)
   at Tamir.SharpSsh.jsch.Util.createSocket(String host, Int32 port, Int32 timeout)
   bei Tamir.SharpSsh.jsch.Session.connect(Int32 connectTimeout)
   bei Tamir.SharpSsh.SshBase.ConnectSession(Int32 tcpPort)
   bei Tamir.SharpSsh.SshBase.Connect(Int32 tcpPort)
   bei Tamir.SharpSsh.SshBase.Connect()

Когда я копирую каталог локально, программа работает нормально.

Есть идеи, почему кажется, что Windows блокирует доступ к сокетам, когда я запускаю эту программу из сетевого ресурса?

Я знаю, что доверяю .net-коду, так что его можно запускать с общего сетевого ресурса, но я восстановил полное доверие, и оно все еще падает (и обычно оно падает намного раньше, если я не доверял полностью) .

Ответы [ 3 ]

0 голосов
/ 07 мая 2018

Я проверяю это - если сервер разрешает только SMBv1 (макс.), Любое соединение не может быть создано из исполняемых файлов из общего ресурса. Если SMB v2, все работает нормально.

0 голосов
/ 13 июня 2018

Microsoft исправила это 26 июня 2018 года в накопительном обновлении 2018-06 для Windows 10 версии 1803 для систем на базе x64 (KB4284848) (сборка ОС 17134.137).

Одно из исправлений актуально:

Устранена проблема, из-за которой некоторые пользователи могут получить сообщение об ошибке при доступе к файлам или запуску программ из общей папки по протоколу SMBv1. Ошибка «Указан неверный аргумент».

Этот и другие обходные пути обсуждаются в:

https://blog.mertech.com/windows-10-version-1803-breaks-some-shared-folder-applications

0 голосов
/ 03 мая 2018

У нас есть информация об этой проблеме:

Windows 10 обновление 1803 не открывает сетевые подключения исполняемые файлы на общей папке SMBv1 (в качестве Windows Server 2003)

Вы можете попробовать переместить вашу программу на совместимый с SMBv2 или SMBv3 сервер, чтобы проверить ее.

...