【发布时间】:2018-10-25 04:12:08
【问题描述】:
我正在 Windows 10 中的共享文件夹中运行一些自行编写的 Winforms .net 3.5 应用程序。
一切正常,但在上次大更新 (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 代码,因此它可以从网络共享运行,但我已经更新了完全信任,但它仍然崩溃(如果我没有完全信任,通常它会更早崩溃) .
【问题讨论】:
-
1803 原计划于 4 月 12 日。由于问题推迟到5月1日。由于这是一个内核更新,我完全预计旧程序会出现暂时的此类问题。
-
@Christopher 这不是暂时的,也不是令人惊讶的。早在 2015 年就宣布最终移除 SMB v1
-
@PanagiotisKanavos - 对我来说这很令人惊讶。奇怪的是我可以很好地打开文件,但它阻止了来自这些位置的网络访问。我希望 Windows 能发布更好的发行说明。解决方案很简单——我们只需配置我们的 SMB 服务器以使用较新的版本。
-
@bernhardrusch warnings were out there 年。发布说明也在那里,包括路线图、安全公告、KB articles。过去几年的勒索软件攻击应该迫使每个人停止使用 SMB v1。在 Petya 之后使用不安全的协议真的没有任何借口
-
@bernhardrusch 我会接受,发现您的网络仍然使用 SMB v1.非常令人惊讶。特别是当它应该已经修补和现代化时。不过,这比 Petya 攻击要好。
标签: c# mysql sockets ssh windows-10