- PR -

WebServiceがタイムアウトしない

1
投稿者投稿内容
hikaru
会議室デビュー日: 2006/07/25
投稿数: 2
投稿日時: 2006-07-25 10:32
PC OS:Windows NT
C# .NET
.NET Framework 1.1

PDA OS:Windows CE
C# .NET
.NET CompactFramework 1.1

PDA(クライアント)とPC(サーバ)間でWebServiceを使い、
通信をしています。

PC(サーバ)側のサービスとして、
意図的にタイムアウトが発生するように、
無限ループのみ記載したメソッドを提供しています。

上記のタイムアウトが発生するメソッドに
PDA(クライアント)から接続にいくと、
WebServiceのTimeoutの設定をしているにもかかわらず、
処理が返ってこず、PDA側でフリーズ状態になります。

エミュレータ上で確認すると、
1度目はタイムアウトが返ってくるのですが、
アプリケーションを落とさずに同じメソッドをもう1度呼ぶと
処理が返ってこなくなります。

ちなみに上記.NET Compact Frameworkで作成したプログラムに
手を加えず.NET Frameworkで実装し、
サーバ及びクライアントどちらともPCで作成して実行すると
何度もタイムアウトが発生します。


色々試してみましたがうまくいかず手詰まりの状態です。
どなたかご存知の方がいらっしゃいましたら
是非ご教授宜しくお願い致します。

コード:
-------- WebService側 --------
[WebMethod]
public void infinityLoop()
{
	for(; true; )
	{
		System.Threading.Thread.Sleep(5000);
	}
}

-------- PDA側 --------
【Reference.cs内】
public Loop() {
	this.Url = "http://192.168.0.1/WebService/Loop.asmx";
	this.Timeout = 1000;
}

【メインフォーム内】
private void Test()
{
	try
	{
		// Webサービスのインスタンス生成
		WebService.Loop webService = new WebService.Loop();

		// タイムアウト発生メソッドを呼ぶ
		webService.infinityLoop();
	}
	catch(System.Exception ex)
	{
		MessageBox.Show(ex.Message);
		return;
	}
}

hikaru
会議室デビュー日: 2006/07/25
投稿数: 2
投稿日時: 2006-07-25 14:25
PCのOSの記述を間違えていました。

正確には Windows XP SP2 です。

以上、宜しくお願いします。
1

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