web-dev-qa-db-ja.com

Windows 10アップデート1803の後、ネットワーク共有から実行しているときにプログラムがソケットを開けない

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コードを信頼することを知っているので、ネットワーク共有から実行できますが、完全な信頼を更新しましたが、まだクラッシュします(通常、完全な信頼を行わなかった場合ははるかに早くクラッシュします)。

5
bernhardrusch

この問題に関するいくつかの情報があります。

Windows 10アップデート1803は、SMBv1共有(Windows Server 2003として)上の実行可能ファイルのネットワーク接続を開きません

プログラムをSMBv2またはSMBv3互換サーバーに移動して確認することができます。

6
Israel T

Microsoftはこれを2018年6月26日に x64ベースシステム用Windows 10バージョン1803の累積的な更新プログラム(KB4284848) (OSビルド17134.137)で修正しました。

修正の1つが関連しています。

SMBv1プロトコルを使用して共有フォルダーからファイルにアクセスしたり、プログラムを実行したりするときに一部のユーザーがエラーを受け取る可能性がある問題に対処します。エラーは「無効な引数が指定されました」です。

この回避策およびその他の回避策については、以下で説明します。

https://blog.mertech.com/windows-10-version-1803-breaks-some-shared-folder-applications

3
flxkid

これをテストします-サーバーがSMBv1のみを許可する場合(最大)、共有からの実行可能ファイルから接続を作成できません。 SMBがv2の場合、すべて正常に機能します。

1
Dżyszla