一尘不染

Windows 10更新1803之后,从网络共享运行时我的程序无法打开套接字

mysql

我正在从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代码的信息,因此可以从网络共享中运行它,但是我已经重新获得了完全信任,但是仍然崩溃(并且如果我不完全信任,它通常会崩溃得更早)。


阅读 336

收藏
2020-05-17

共1个答案

一尘不染

我们有一些有关此问题的信息:

Windows 10更新1803不会在 SMBv1共享 上的可执行文件上打开网络连接(作为Windows Server 2003)

您可以尝试将程序移至SMBv2或SMBv3兼容服务器以进行检查。

2020-05-17