2010-12-07 16 views
0

MVC ASP.NETアプリケーションがあります。これは、ビューのdocument.ready内に、$ .ajaxを使用して特定のアクションをN回呼び出すものです。このアクションは、WCFサービスのメソッドを呼び出します。このメソッドは、オブジェクトのキューにアクセスしてデキューし、最後にオブジェクトを返します。このオブジェクト内のプロパティはJSONとして呼び出しアクションによって返され、$ .ajax呼び出しに戻ります。成功 'パラメータ。WCF同時処理の問題

問題は、同時に実行されていないため、log4netによって生成されたデータによって通知されます。 ほとんどの場合、同じスレッドがすべてのWCF呼び出しを処理します。そして、彼らはすべて始まりと終わりの時によって判断して、連続的です。 エラーは発生せず、すべての呼び出しが正常に実行されますが、同時に実行されないため、パフォーマンスに問題があります。

重要: 私は、InstanceContextMode = InstanceContextMode.Single、ConcurrencyMode = ConcurrencyMode.MultipleでWCFサービスをデコレートしました。 $ .ajax呼び出しはasync:trueです(デフォルト値ですが、実際は変更しません)。 サービスはnetTcpBindingを使用しています。

アイデア?

+0

Webサービスを呼び出すコントローラアクション内でセッションを使用していますか? –

+0

私はセッションを避ける傾向があります。 – viniciushana

答えて

0

IEは、ブラウザの問題であるかどうかわからない、単一のドメインへの2つの同時のajax呼び出しを制限することがあります。銀色の記事、this linkが役に立ちます。

また、serviceBehaviorにある値、具体的にはmaxConcurrentCallsを確認しましたか?

+0

ええ、maxConcurrentCalls = "50" maxConcurrentSessions = "50" maxConcurrentInstances = "50"です。これはChromeでも同じです。 – viniciushana

+0

デモコンソールアプリケーションとスレッドプールを切断して、それがサービスかウェブページである場合に孤立させるのはどうですか? –

+0

良いアイデア、私はそれを試してみましょう。 – viniciushana