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

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

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

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

VB.NET

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

Q&A

解決済

1回答

3309閲覧

そVB.NETで発生する「接続が切断されました: 接続が予期せずに閉じられました。」の意味を知りたい

tr20170808

総合スコア14

PHP

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

VB.NET

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

0グッド

0クリップ

投稿2017/08/21 04:32

編集2017/08/22 03:06

###前提・実現したいこと
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

###補足情報
条件によって正常終了する場合があることがあったので追記いたします。

PHPの内容:SQLでSELECTして結果を返しています
条件によっては例外が発生せずに正常終了しています
サーバは起動しています。NGパターンは試せていませんが、OKパターンの検索条件では正常終了しています。
今のところほぼ全件を返すような条件だとNGで少数の結果が返るような条件だとOKというところまでしか試せておりません。

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

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

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

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

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

koguma98

2017/08/21 06:06

どのようなVB.NETのコードで、どのようなPHPのコードを呼んでいるのでしょうか?PHPでは正しく値を返せていますか?
m.ts10806

2017/08/22 01:32

PHP単体で実行は出来ているのでしょうか(PHPが動作しているサーバーが立ち上がってるとかその辺りも)
koguma98

2017/08/22 07:13

例外が発生する場合に、PHPは最後まで終了しているか確認してみてはどうでしょうか?PHPが途中で異常終了した場合に起こりうる可能性があります。
tr20170808

2017/08/23 01:27

PHPの異常終了が原因のようです。ありがとうございました。
m.ts10806

2017/08/23 01:39 編集

自身で回答を書かれて自己解決とされては?原因と解決策を解決済みとして残しておくことで今後誰かのためになるかもしれません
guest

回答1

0

自己解決

PHP異常終了時に「接続が切断されました: 接続が予期せずに閉じられました。」のメッセージが発生していた。PHPを修正して異常終了しないようにすることで発生しなくなりました。

投稿2017/08/23 01:42

tr20170808

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問