0

1.私のサービスはコンソール アプリケーション上にあり、私のクライアントは Windows アプリケーション上にあります。

2.サービスにはコントラクトがあり、クライアントにはコールバック コントラクトがあります。

この問題は、クライアントがサービスのメソッドをアクティブ化し、そのメソッドがクライアントのコールバックをアクティブ化したが、そのメソッドが実行されない場合に発生します! 大きなショックは、クライアントがコンソール アプリケーションを使用しているときに、同じ状況でコールバック IS が実行されることです。

サービス契約インプレッション:

        [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)
        {
            ....
        }
}

同じコードがクライアント コンソール アプリケーションでは機能しますが、クライアント Windows アプリケーションでは機能しません。

4

0 に答える 0