私はこの問題の解決策を探すために2日間を費やしました。SilverLightアプリケーション内でのWCFの呼び出しは、WCFを使用するコンソールアプリケーションで完全に機能している間、現在1つのクライアントに制限されているようです。
今のところ問題は明確ではなく、どの方法に従う必要があるのかさえわかりません。
環境
OS:Windows 2008 R2 Enterprise、Silver Light 4、C#4、IIS:7.5
アプリケーションアーキテクチャ
コンソールアプリケーションによってホストされるWCFサービス
[OperationContract] string DoConnect(int id, string who);
IISがホストするボタンを押すと非同期でWCFを参照/呼び出すSilverLightアプリケーション。
private void MultipleConnection(object sender, RoutedEventArgs e1) { WCFServicesX3Ref.WCFServicesX3Client client = new WCFServicesX3Ref.WCFServicesX3Client(); client.DoConnectCompleted += (s,e) => { if (e.Result == null){ MessageBox.Show("Not Connected");} else{MessageBox.Show(e.Result);} }; client.DoConnectAsync(Convert.ToInt32(whoid.Text),winToLoad.Text); }
起動時に同期的にWCFを参照/呼び出すコンソールアプリケーション。
Console.WriteLine("Beginning..."); Ref.WCFServicesX3Client client = new Ref.WCFServicesX3Client(); client.DoConnect(1, "User 1"); client.DoConnect(2, "User 2"); client.DoConnect(3, "User 3"); client.Close();
アプリケーションの動作/問題
コンソールアプリケーションによってホストされるWCFが開始され、待機しています...
ローカルアドレスでインターネットブラウナーを使用してIISによってホストされているSilverLightアプリケーションに接続し、[ボタン]を押してWCFを呼び出す->[OK]を返す
同じローカルアドレスで新しいWebページを開きます。Silverlightアプリケーションが表示されたら、[ボタン:WCFを呼び出す->何も返さない-呼び出しによってエラーまたは例外が返されません]を押します。
複数のクライアントコンソールアプリケーション(同期モード)を起動できますが、問題は発生していません。
質問
非同期モードは手動で閉じる必要がありますか(自動的に閉じられましたが)?
IISの構成/パラメーター化の問題ですか?私がテスト/検索をどこに集中させるべきかについて何か考えがあれば、どういたしまして:)。
ありがとう。