Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未执行wcf回调方法_C#_Wcf_Console Application_Windows Applications_Wcf Callbacks - Fatal编程技术网

C# 未执行wcf回调方法

C# 未执行wcf回调方法,c#,wcf,console-application,windows-applications,wcf-callbacks,C#,Wcf,Console Application,Windows Applications,Wcf Callbacks,1。我的服务在控制台应用程序上,我的客户端在windows应用程序上 2.服务有合同,我的客户有回拨合同 当客户端激活服务上的方法,并且该方法激活客户端的回调,但该方法未执行时,就会出现问题! 最大的冲击是当客户机在控制台应用程序上时,回调也是在相同的情况下执行的 服务合同imp: [ServiceBehavior( InstanceContextMode = InstanceContextMode.Single, Co

1。我的服务在控制台应用程序上,我的客户端在windows应用程序上

2.服务有合同,我的客户有回拨合同

当客户端激活服务上的方法,并且该方法激活客户端的回调,但该方法未执行时,就会出现问题! 最大的冲击是当客户机在控制台应用程序上时,回调也是在相同的情况下执行的

服务合同imp:

        [ServiceBehavior(
               InstanceContextMode = InstanceContextMode.Single,
               ConcurrencyMode = ConcurrencyMode.Multiple,
               IncludeExceptionDetailInFaults = true
                )]
            public class ServerContractImplementation : IServerContract
            {
    private void NotifyOnDownloadAsync(int TorrentID, int ClientID)
            {
                    ...
                    IClientCallBackContract ICCC = this.ConnectedClients.Single(ConnectedClient1 => ConnectedClient1.Key.ClientID == ClientID).Value;
                    ICCC.AddSeeders(TorrentID, Seeders);
                    ...
            }
    }
[ServiceBehavior(IncludeExceptionDetailInFaults=true)]
    internal class ClientCallBackContractImplementation : IClientCallBackContract
    {
public void AddSeeders(int TorrentID, IEnumerable<ReplacementObjects.Client> Clients)
        {
            ....
        }
}
客户的回拨合同imp:

        [ServiceBehavior(
               InstanceContextMode = InstanceContextMode.Single,
               ConcurrencyMode = ConcurrencyMode.Multiple,
               IncludeExceptionDetailInFaults = true
                )]
            public class ServerContractImplementation : IServerContract
            {
    private void NotifyOnDownloadAsync(int TorrentID, int ClientID)
            {
                    ...
                    IClientCallBackContract ICCC = this.ConnectedClients.Single(ConnectedClient1 => ConnectedClient1.Key.ClientID == ClientID).Value;
                    ICCC.AddSeeders(TorrentID, Seeders);
                    ...
            }
    }
[ServiceBehavior(IncludeExceptionDetailInFaults=true)]
    internal class ClientCallBackContractImplementation : IClientCallBackContract
    {
public void AddSeeders(int TorrentID, IEnumerable<ReplacementObjects.Client> Clients)
        {
            ....
        }
}
[服务行为(IncludeExceptionDetailInFaults=true)]
内部类ClientCallbackContract实现:IClientCallBackContract
{
公共void AddSeeders(int-TorrentID,IEnumerable客户端)
{
....
}
}

相同的代码适用于客户端控制台应用程序,但不适用于客户端windows应用程序。

您解决过这个问题吗?如果是这样的话,你能发布一个答案吗?谢谢:)是的,我解决了。我不记得具体是怎么做的,但可能是通过在不同线程的服务端打开服务。这里回答: