- PR -

Webフォームから応答を返す方法

1
投稿者投稿内容
ぷーちん
常連さん
会議室デビュー日: 2002/10/30
投稿数: 28
投稿日時: 2003-11-06 14:26
いつもお世話になっております。
ASP.NETで、Webフォームから応答を返す方法を教えてください。

Page_Loadの最後で下のように応答を返すようなWebフォームを作成しました。

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 Dim strRes As String
 Try
  '処理
  strRes = "正常終了"
 Catch ex As System.Exception
  strRes = ex.Message
 Finally
  Response.Write(strRes)
  '@
End Sub


テスト用に作成したツールで問題なく応答が受け取れることを確認しました。
下がツールのコードです。

Private Sub cmdConnect_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdConnect.Click
 Dim oHttpReq As New MSXML.XMLHTTPRequest()
 Dim nReq As Short
 Dim strSendTo As String
 Try
  oHttpReq.open("POST", "http://localhost/TEST/TEST.aspx", False)
  '送信
  oHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
  oHttpReq.send(String.Format("DATA=aaa")
  If oHttpReq.status = 200 Then  'HTTP のレスポンスが 200の場合
   MsgBox(oHttpReq.responseText) 'レスポンスデータを取得
  Else 'エラーの場合
   MsgBox(oHttpReq.statusText)  'エラーテキストを取得
  End If
  oHttpReq = Nothing

 Catch ex As System.Exception
  MsgBox(ex.ToString)
 End Try
End Sub


ところが、別のクライアントAでセッションが閉じるのを待ってから応答を受け取っている場合、
必ず1分15秒後に応答を受け取るということで、Webフォームの応答部分を以下のようにしました。

@の部分に下の2行を追加した
 Response.Flush()
 Response.Close()

修正後、クラアントAではすぐに応答が受け取れるようになりましたが、
更に別のクライアントBで、応答が受け取れなくなってしまいました。
修正前には、クライアントBでもすぐに応答が受け取れていたそうです。
テスト用に作成したツールでは、修正前、後のどちらでも応答はすぐに受け取れています。

Webフォームから応答を返す場合、どのようにするのが正しいのでしょうか?
Web.configで何か設定をしたり、Responseの何か設定が必要なのでしょうか?

どうぞよろしくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)