Xamarin.ios 信号机不';t回声

Xamarin.ios 信号机不';t回声,xamarin.ios,iis-7.5,signalr,signalr-hub,Xamarin.ios,Iis 7.5,Signalr,Signalr Hub,我在试信号器 我首先用一种方法制作了一个集线器Echo。集线器在连接时以及从Echo方法调用客户端上的“echoed”方法。客户端看到了在OnConnected中发生的第一个对“echood”的调用,但没有看到它自己调用的来自Echo的调用。我怀疑原因是在服务器上,集线器在两个不同的AppDomain中为两个调用实例化 --更新:--- 通过在IIS管理器中将“最大工作进程数”设置为1(在“应用程序池/My app池/Advanced Settings”下),应用程序将在单个AppDomain中

我在试信号器

我首先用一种方法制作了一个集线器
Echo
。集线器在连接时以及从Echo方法调用客户端上的“echoed”方法。客户端看到了在OnConnected中发生的第一个对“echood”的调用,但没有看到它自己调用的来自Echo的调用。我怀疑原因是在服务器上,集线器在两个不同的AppDomain中为两个调用实例化

--更新:--- 通过在IIS管理器中将“最大工作进程数”设置为1(在“应用程序池/My app池/Advanced Settings”下),应用程序将在单个AppDomain中强制运行,回调回显将正常工作有没有办法让它与多个工作进程协同工作?

   public override System.Threading.Tasks.Task OnConnected()
    {
        Log.WriteLine("SIGNALR CONNECTED: " + Context.ConnectionId);
        Clients.All.Echoed("now connected: "+Context.ConnectionId);
        return base.OnConnected();
    }

    public void Echo(string data)
    {
        Log.WriteLine("SIGNALR ECHO: " + data);
        Clients.All.Echoed(data);
    }
客户端是.NET(Xamarin),它尝试向自己发送回显消息:

   try{
        System.Net.ServicePointManager.DefaultConnectionLimit = 10;

        HubConnection hubConnect = new HubConnection ("http://localhost:1234/signalr");
        hubConnect.Closed+=()=> Console.WriteLine("CLOSED");
        hubConnect.Error+=(e)=>Console.WriteLine("ERROR: "+e);
        hubConnect.Received+=(s)=>Console.WriteLine("RECEIVED: "+s); 
        hubConnect.Reconnected+=()=>Console.WriteLine("Reconnected"); 

        IHubProxy ordersHubProxy = hubConnect.CreateHubProxy ("OrdersHub"); 
        ordersHubProxy.On<string> ("Echoed", (echo) =>{
            Console.WriteLine ("ECHOED: " + echo );
        });
        hubConnect.Start().Wait();
        Console.WriteLine("CONNECTED: "+hubConnect.Transport.Name);
        ordersHubProxy.Invoke("echo", "callback");
    } catch (Exception x){
        Console.WriteLine ("Unable to connect to SignalR: " + x);
    };
客户端日志:

CONNECTED: serverSentEvents
ECHOED: now connected: 5cde92f8-9719-4963-b64f-a8bbe39a72ac
RECEIVED: {
  "H": "MyHub",
  "M": "Echoed",
  "A": [
    "now connected: 5cde92f8-9719-4963-b64f-a8bbe39a72ac"
  ]
我也希望看到这个,但它没有出现:

ECHOED: callback
RECEIVED: ...

你为什么不等调用呢?调用(“回显”、“回调”).Wait();。为什么您怀疑它正在另一个应用程序域中运行?您是否托管在webfarm或其他地方?@dfowler:我在调用中添加了
.Wait()
,但这并没有改变输出。我托管服务器,服务器日志包含如上所示的“log AppDomain”条目,其中记录了AppDomain名称,这两个名称不同calls@dfowlerAppDomain被确认为问题的原因,请参阅更新,我仍然不知道如何使它与1个以上的工作进程一起工作。请阅读介绍。这同样适用于多个应用程序域/应用程序池/计算机
ECHOED: callback
RECEIVED: ...