0

Duplex と「通常の」非同期呼び出しの両方をポーリングして WCF を使用する Silverlight アプリがあります。global.asax ファイルを追加するまで、すべてが正常に機能していました。

1時間のグーグル検索の後、スタブ化されたSession_startイベントをコメントアウトすることを提案するJean-Dirk Stuartによるかなり古いブログに出くわしました。

確かに問題は修正されましたが、懸念が生じます。global.asax ファイルの良性のように見えるこのメンバーが、なぜ wcf 呼び出しを中断するのでしょうか。

4

2 に答える 2

2

ええ、これはあまり知られていませんが厄介な問題です。global.asax ファイルを Web プロジェクトに追加すると、セッション状態が有効になることが問題になります。セッション状態が有効になると、サーバーは呼び出しを順番に実行するだけになります。より詳細な情報が記載された 2 つの記事を次に示します。

http://blogs.msdn.com/b/silverlightws/archive/2009/09/30/having-a-pollingduplex-service-and-any-other-wcf-service-in-the-same-website-causes- silverlight-calls-to-be-slow.aspx

http://weblogs.asp.net/olakarlsson/archive/2010/05/20/simultaneously-calling-multiple-methods-on-a-wcf-service-from-silverlight.aspx

この動作は、ブラウザー ネットワーク スタックを使用している場合にのみ発生するため、次のオプションがあります。

  1. Web プロジェクトでセッション状態を無効にする、または
  2. クライアント ネットワーク スタックを使用する

お役に立てれば...

クリス

于 2010-12-11T06:19:26.713 に答える
0

asp.netセッションデータへのアクセスをサポートするバインディングにはいくつかの種類がありますが、httpモジュールのようにWCFがsession_startイベントにフックしようとしない限り、それがどのように影響するかはわかりません。リフレクターを使用して、例外が発生した場所でコードを逆アセンブルすることもできます。

于 2010-12-10T20:50:09.390 に答える