VC#で作成しているプログラムで、数日可動させていると次のエラーが発生しました。
バイナリデータをダウンロードして保存している部分で以下のエラーが出てプログラムが
終了してしまいます。
修正方法をご存知の方がいましたらご教授ください。
「Windows 10 の Visual Studio 2022 で Windows Forms アプリをターゲットフレームワーク .NET Framework 7.0 で作っています。」
エラー内容
”Application:xxxx.exe
CoreCLR Version: 7.0.423.11508
.NET Version: 7.0.4
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.IOException: Unable to read data from the transport connection: 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。.
---> System.Net.Sockets.SocketException (10060): 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。
at System.Net.Sockets.NetworkStream.Read(Span1 buffer) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Read(Span
1 buffer)
at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](CancellationToken cancellationToken)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder1.StateMachineBox
1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](Memory1 buffer, CancellationToken cancellationToken) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder
1.StateMachineBox1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token) at System.Net.Security.SslStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.Read(Span
1 buffer)
at System.Net.Http.HttpConnection.Read(Span1 destination) at System.Net.Http.HttpConnection.ContentLengthReadStream.Read(Span
1 buffer)
at System.Net.Http.HttpBaseStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at WpfApp1.MainWindow.ReadBinaryData(Stream st) in C:\Users\xxxx\wpf20210528_2021060151000\WpfApp1\MainWindow.xaml.cs:line 1539
at WpfApp1.MainWindow.str_readimge(String filePath, String userName, String userPassword, String outPath) in C:\Users\xxxx\WpfApp1\MainWindow.xaml.cs:line 1604
at WpfApp1.MainWindow.InitializeAsync() in C:\Users\xxx\WpfApp1\MainWindow.xaml.cs:line 347
at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at WpfApp1.App.Main()”
プログラム
System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(filePath); //CredentialCacheの作成 System.Net.CredentialCache cache = new System.Net.CredentialCache(); //基本認証の情報を追加 cache.Add(new System.Uri(filePath), "Basic", new System.Net.NetworkCredential(userName, userPassword)); //認証の設定 webreq.Credentials = cache; try { //HttpWebResponseの取得 System.Net.HttpWebResponse webres = (System.Net.HttpWebResponse)webreq.GetResponse(); } catch (System.Exception e) { Console.WriteLine(e.ToString()); err_flg = true; } //受信して表示 if (err_flg == false) { WebRequest req = WebRequest.Create(filePath); using (WebResponse res = req.GetResponse()) { using (Stream st = res.GetResponseStream()) { data = ReadBinaryData(st); st.Close(); } try { File.WriteAllBytes(outPath, data); } catch (System.Exception e) { Console.WriteLine(e.ToString()); err_flg = true; } finally { if (res != null) res.Close(); } } } return err_flg; }
回答1件
あなたの回答
tips
プレビュー