質問

私は、Silverlightクライアントに通知をプッシュするWCF PollingDuplexHttpBindingチャネルを使用しています。ほとんどの部分については、それはうまく動作しますが、私は正常に動作するために、いくつかの基本セッション管理機能を得るためにそれを戦っている。

私が持っている最大の問題は、サーバーがクライアントがセッションを終了し、もはや通知を必要としている知っている聞かせしようとしています。クライアント上CloseAsync呼び出しはそのセッションのみのための新しい通知の要求を送信チャネルのクライアント側を停止し、それはまた、サーバーにCloseSessionのSOAPリクエストを送信します。問題は、チャネルのサーバー側は、それがCloseSessionアクションを認識しないと言って404を送り返しています。私の知る限り見ることができるように、そのエラーがPollingDuplexHttpBindingチャネルの内部からのものであり、セッションの閉鎖が適切に世話をすることができるようにアプリケーションにそれを作るません。

他の誰がこの問題に遭遇し、おそらくそれを回避する方法を発見していますか?

役に立ちましたか?

解決

ルックスによって行うことができない、PollingDuplexHttpBinding上不満のます。

他のヒント

まあその不満の記事はただ驚くばかりだった、と間接的に私はHTTPを介して両面をやったときにSilverlightが非常にゆっくりと取り組んで持ってきた関連の問題を解決しました。 Bsaically、問題はASP.Netセッション状態がウェブサイトでオンになったと(代わりにClientHttpスタックの)シルバーのBroserHttpスタックを使用することによって引き起こされます。

Yavorは、問題を説明する(この記事では)良い仕事をします:

<のhref = "http://blogs.msdn.com/b/silverlightws/archive/2009/09/30/having-a-pollingduplex-service-and-any-other-wcf-service-in- - 同じ - ウェブサイト - 原因 - シルバー - 通話ツー被slow.aspx」relが= 『nofollowを』> http://blogs.msdn.com/b/silverlightws/archive/2009/09/30/having- -pollingduplex-サービスと-いかなる-他-WCFサービス・イン・ザ・同じ-ウェブサイト - 原因 - シルバー - 通話ツーこと-slow.aspx の

あなたがこの問題を抱えている場合は、

簡単な修正は、あなたのサービスを呼び出す前にClientHttpスタックのルートを登録することです。これは、呼び出すだけで達成することができます:

WebRequest.RegisterPrefix(requestUri.AbsoluteUri, WebRequestCreator.ClientHttp);

どこrequestUriは、あなたのサービスのウリです。この情報がお役に立てば幸いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top