C# 未执行wcf回调方法
1。我的服务在控制台应用程序上,我的客户端在windows应用程序上 2.服务有合同,我的客户有回拨合同 当客户端激活服务上的方法,并且该方法激活客户端的回调,但该方法未执行时,就会出现问题! 最大的冲击是当客户机在控制台应用程序上时,回调也是在相同的情况下执行的 服务合同imp: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
[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应用程序。您解决过这个问题吗?如果是这样的话,你能发布一个答案吗?谢谢:)是的,我解决了。我不记得具体是怎么做的,但可能是通过在不同线程的服务端打开服务。这里回答: