Хай! Снова вопрос по WCF. При использовании callback клиент виснит, потом вылетает по таймауту. Вроде все настроено правильно...
Код сервиса:
[ServiceContract(
CallbackContract = typeof(IChargesServiceCallback),
SessionMode = SessionMode.Required)]
public interface IChargesServiceContract
{
[OperationContract]
DateTime GetServiceDateTime();
[OperationContract]
void Echo();
}
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession,
ConcurrencyMode = ConcurrencyMode.Multiple)]
public class ChargesService : IChargesServiceContract
{
public IChargesServiceCallback Callback
{
get { return OperationContext.Current.GetCallbackChannel<IChargesServiceCallback>(); }
}
public DateTime GetServiceDateTime()
{
return DateTime.Now;
}
public void Echo()
{
Callback.ServerMessage("!!!");
}
}
public interface IChargesServiceCallback
{
[OperationContract(IsOneWay = True)]
void ServerMessage(string message);
}
Конфиг сервиса:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="MetadataSupport">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding1" closeTimeout="00:00:30" openTimeout="00:00:30"
receiveTimeout="00:01:00" />
</netTcpBinding>
</bindings>
<services>
<service behaviorConfiguration="MetadataSupport" name="ChargesServiceLibrary.ChargesService">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="NetTcpBinding1"
contract="ChargesServiceLibrary.IChargesServiceContract" />
<endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:9000/ChargesService" />
<add baseAddress="http://localhost:8080/ChargesService" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
Прокси и конфа клиента генерятся svcutil.exe.
Все методы сервиса зовуться нормально. Но при попытке позвать callback (в примере метод Echo()) — таймаут. Интерфейс IChargesServiceCallback на клиенте реализован.
В чем могут быть вилы?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>