我正在从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,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代码,所以它可以从网络共享运行,但我已经更新了完全信任并且它仍然崩溃(如果我没有完全信任,通常它会更早崩溃).
最佳答案
我们有一些关于此问题的信息:
Windows 10 update 1803 does not open network connections on
executables files on SMBv1 share (as Windows Server 2003)
您可以尝试将程序移动到SMBv2或SMBv3兼容服务器进行检查.