質問編集履歴

2 例外発生条件について追記

tr20170808

tr20170808 score 14

2017/08/22 12:06  投稿

そVB.NETで発生する「接続が切断されました: 接続が予期せずに閉じられました。」の意味を知りたい
###前提・実現したいこと
VB.NETからPHPアプリに接続するとエラーになる
デバッグするためにエラーがどういった時に発生するか知りたい
###発生している問題・エラーメッセージ
```
接続が切断されました: 接続が予期せずに閉じられました。
```
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
VB.NET2017
Windows10
PHP5.5.9
###該当のソースコード
       '文字コードを指定する
       Dim enc As System.Text.Encoding =
           System.Text.Encoding.GetEncoding("shift_jis")
       'バイト型配列に変換
       Dim postDataBytes As Byte() =
           System.Text.Encoding.ASCII.GetBytes(postData)
       Dim req As HttpWebRequest = CType(WebRequest.Create(sTargetUrl), HttpWebRequest)
       ' HTTP圧縮への対応
       req.AutomaticDecompression = DecompressionMethods.GZip
       'メソッドにPOSTを指定
       req.Method = "POST"
       'ContentTypeを"application/x-www-form-urlencoded"にする
       req.ContentType = "application/x-www-form-urlencoded"
       'POST送信するデータの長さを指定
       req.ContentLength = postDataBytes.Length
       'データをPOST送信するためのStreamを取得
       Using reqStream As System.IO.Stream = req.GetRequestStream()
           '送信するデータを書き込む
           reqStream.Write(postDataBytes, 0, postDataBytes.Length)
       End Using
       ' ファイルのダウンロード
       Dim json As String = String.Empty
       Dim res As WebResponse = Nothing
       Dim st As Stream = Nothing
       Dim sr As StreamReader = Nothing
       Try
           res = req.GetResponse() ' ← *** ここで例外が発生 ***
           st = res.GetResponseStream()
           sr = New StreamReader(st)
           st = Nothing
           json = sr.ReadToEnd()
       Finally
           If sr IsNot Nothing Then
               sr.Close()
           End If
           If st IsNot Nothing Then
               st.Close()
           End If
           If res IsNot Nothing Then
               res.Close()
           End If
       End Try
       End Try
###補足情報
条件によって正常終了する場合があることがあったので追記いたします。
PHPの内容:SQLでSELECTして結果を返しています
条件によっては例外が発生せずに正常終了しています
サーバは起動しています。NGパターンは試せていませんが、OKパターンの検索条件では正常終了しています。
今のところほぼ全件を返すような条件だとNGで少数の結果が返るような条件だとOKというところまでしか試せておりません。
  • PHP

    38989 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • VB.NET

    1743 questions

    Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

1 ソース追加

tr20170808

tr20170808 score 14

2017/08/22 11:58  投稿

VB.NETで発生する「接続が切断されました: 接続が予期せずに閉じられました。」の意味を知りたい
VB.NETで発生する「接続が切断されました: 接続が予期せずに閉じられました。」の意味を知りたい
###前提・実現したいこと
VB.NETからPHPアプリに接続するとエラーになる
デバッグするためにエラーがどういった時に発生するか知りたい
###発生している問題・エラーメッセージ
```
接続が切断されました: 接続が予期せずに閉じられました。
```
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
VB.NET2017
Windows10
PHP5.5.9
PHP5.5.9
###該当のソースコード
       '文字コードを指定する
       Dim enc As System.Text.Encoding =
           System.Text.Encoding.GetEncoding("shift_jis")
       'バイト型配列に変換
       Dim postDataBytes As Byte() =
           System.Text.Encoding.ASCII.GetBytes(postData)
       Dim req As HttpWebRequest = CType(WebRequest.Create(sTargetUrl), HttpWebRequest)
       ' HTTP圧縮への対応
       req.AutomaticDecompression = DecompressionMethods.GZip
       'メソッドにPOSTを指定
       req.Method = "POST"
       'ContentTypeを"application/x-www-form-urlencoded"にする
       req.ContentType = "application/x-www-form-urlencoded"
       'POST送信するデータの長さを指定
       req.ContentLength = postDataBytes.Length
       'データをPOST送信するためのStreamを取得
       Using reqStream As System.IO.Stream = req.GetRequestStream()
           '送信するデータを書き込む
           reqStream.Write(postDataBytes, 0, postDataBytes.Length)
       End Using
       ' ファイルのダウンロード
       Dim json As String = String.Empty
       Dim res As WebResponse = Nothing
       Dim st As Stream = Nothing
       Dim sr As StreamReader = Nothing
       Try
           res = req.GetResponse() ' ← *** ここで例外が発生 ***
           st = res.GetResponseStream()
           sr = New StreamReader(st)
           st = Nothing
           json = sr.ReadToEnd()
       Finally
           If sr IsNot Nothing Then
               sr.Close()
           End If
           If st IsNot Nothing Then
               st.Close()
           End If
           If res IsNot Nothing Then
               res.Close()
           End If
       End Try
  • PHP

    38989 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • VB.NET

    1743 questions

    Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る