我花了 2 天时间寻找解决此问题的方法。似乎在 SilverLight 应用程序中调用 WCF 目前仅限于 1 个客户端,而它与使用 WCF 的控制台应用程序完美配合。
目前问题尚不清楚,我什至不知道必须遵循哪种方法。
环境
操作系统:Windows 2008 R2 Enterprise、Silver Light 4、C# 4、IIS:7.5
应用架构
由控制台应用程序托管的 WCF 服务
[OperationContract] string DoConnect(int id, string who);
Silver Light 应用程序在 IIS 托管的按下按钮上以异步方式引用/调用 WCF。
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 已启动并等待...
我使用本地地址上的 Internet browner 连接到由 IIS 托管的 Silver Light 应用程序,然后按“按钮”调用 WCF --> 返回 OK
在相同的本地地址上打开一个新网页:显示 Silver light 应用程序,然后按“按钮:调用 WCF --> 不返回任何内容 - 调用没有错误或异常返回。
我可以启动几个客户端控制台应用程序(同步模式),问题没有出现。
问题
异步模式是否需要手动关闭(我虽然它是自动完成的)?
是 IIS 配置/参数化的问题吗?如果您知道我应该将测试/搜索的重点放在哪里,欢迎您:)。
谢谢。