質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

10907閲覧

接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。

kishidamisao

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2023/04/03 02:19

編集2023/04/05 09:26

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(Span1 buffer)
at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](CancellationToken cancellationToken)
at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder1.StateMachineBox1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](Memory1 buffer, CancellationToken cancellationToken) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder1.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(Span1 buffer)
at System.Net.Http.HttpConnection.Read(Span1 destination) at System.Net.Http.HttpConnection.ContentLengthReadStream.Read(Span1 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; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2023/04/03 02:29

接続時間が長すぎて先方から切断されているのでは? 途中経過を保存する仕組みと、前回保存したところから始める仕組みを用意し、切断された時点で再接続して続けるのが良いと思います。
退会済みユーザー

退会済みユーザー

2023/04/03 02:56

まず、何はともあれコードは上下を ``` と ``` で囲ってください(``` はバッククォート 3 つ)。インデントされて読みやすくなるので。 開発環境を質問欄を編集して追記してください。(例: Windows 10 の Visual Studio 2022 で Windows Forms アプリをターゲットフレームワーク .NET Framework 4.8 で作っています・・・とか)
退会済みユーザー

退会済みユーザー

2023/04/03 03:16 編集

コードは上下を ``` と ``` で囲ってください(``` はバッククォート 3 つ)。 ``` コードの一行目 ・・・ コードの最後の行 ``` くどいようですが、``` はバッククォート 3 つです。バッククォートってわかります? 分からなければ ``` をコピペしてください。
退会済みユーザー

退会済みユーザー

2023/04/04 00:03 編集

このコメントは回答欄に移しました。
guest

回答1

0

ベストアンサー

エラーメッセージを見る限り Web サーバー側の問題のようなので、質問者さんが(クライアント側が)できることは、例外スローでアプリが終了する前に何度か再接続を試みる (WebRequest が自動的に何度か試みた結果つながらないとして例外をスローしているはずなので、それなりに間をあける必要があると思います)、数回やってダメなら相手の Web サーバーダウンを調べる、ダウンしてたら回復するまで待つぐらいしかないのではと思います。

投稿2023/04/04 00:02

編集2023/04/04 00:04
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kishidamisao

2023/04/05 00:26

例外スローした場合、「ネットにつながらないと表示」することにして、再度接続を試みることにしました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問