当前位置: 首页 > 面试题库 >

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

华项明
2023-03-14
问题内容

我正在从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更新1803不会在 SMBv1共享 上的可执行文件上打开网络连接(作为Windows Server 2003)

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



 类似资料:
  • 问题内容: 我必须运行才能进行进程的堆转储。但返回: 所以我用了: 使用 可以进行堆转储吗? 我正在等待20分钟,尚未完成。有什么想法吗? 问题答案: vs. 以及vs. 使用完全不同的机制与目标JVM通信。 jmap / jstack 在没有这些工具的情况下运行时,请使用动态附加机制。其工作原理如下。 连接到Java进程1234之前,请在目标进程的工作目录或处创建一个文件。 然后发送到目标进程。

  • 我正在使用FB。允许用户使用此代码共享我的页面的ui: 当从 Android 移动应用程序中的嵌入式浏览器共享页面时,用户可以选择要用于打开共享对话框的应用程序。如果选择了脸书应用,则不会有回调响应。在普通的桌面浏览器中,一切都按预期工作。这种行为是预期的吗?

  • 我必须运行以便对我的进程进行堆转储。但是返回: 所以我用了: 使用可以进行堆转储吗

  • 我有一个网络应用程序,在其中,我正在尝试分享一个链接到WhatsApp网络应用程序,但不是在移动应用程序。 我已经通过了WhatsApp网页版的共享链接?但没有提供解决方案。 可行吗? 这段代码帮助我通过WhatsApp移动应用程序分享它。在WhatsApp web应用程序中有没有同样的方法?

  • 问题内容: 我必须运行才能进行进程的堆转储。但返回: 所以我用了: 使用 可以进行堆转储吗? 我正在等待20分钟,尚未完成。有什么想法吗? 问题答案: jmapvs. jmap -F以及jstackvs. jstack -F使用完全不同的机制与目标JVM通信。 jmap / jstack 在没有这些工具的情况下运行时,请使用动态附加机制。其工作原理如下。 连接到进程1234之前,请在目标进程的工作

  • 我编写了一个套接字服务器程序员: 为什么找不到? 编辑-01 我把这行插入我的第一行。