1

我花了 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 配置/参数化的问题吗?如果您知道我应该将测试/搜索的重点放在哪里,欢迎您:)。

谢谢。

4

0 回答 0