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

标签 c# mysql sockets ssh windows-10

我正在从 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 代码,所以它可以从网络共享运行,但我已经更新了完全信任,但它仍然崩溃(如果我没有完全信任,它通常会更早崩溃) .

最佳答案

我们有一些关于这个问题的信息:

Windows 10 update 1803 does not open network connections on executables files on SMBv1 share (as Windows Server 2003)

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

关于c# - 在 Windows 10 更新 1803 之后,我的程序在从网络共享运行时无法打开套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50155482/

相关文章:

c# - 如何将枚举转换为 C# 中的列表?

c# - 如何在 Itext7 中合并时向 PDF 添加书签

php - 如何获取join中每个bank_id的最后记录

c++ - 无法在 C++ 中将数据从服务器发送到本地网络上的客户端

C# Toolstrip 导致支持表单增长

c# - 在创建模式 MVC 4 中填充 DropDownList 中的数据

mysql - '未知变量 "character-set-server=utf-8"' mysqldump 错误

MySQL 帮助 : Return invoices and payments by date

java - 使用java套接字从客户端向服务器发送文本文件

java - 如何重新打开 Java 套接字