Хи, все.
У меня интересный случай. Я попытался создать соединение службы клиента wcf на основе привязки netmsmq, размещенной в приложении службы Windows.
Таким образом, я уловил проблему с моей службой хоста - она не может получить сообщение из очереди. MSDTC показывает откат транзакции. И после некоторых попыток сообщения перемещаются в очередь повторных попыток. ServiceHost становится ошибочным состоянием, и после того, как я запускаю снова, снова и снова происходит сбой.
Таким образом, в приложении хоста у меня нет исключений и ничего, кроме состояния отказа хоста.
У меня есть сервис с двумя контрактами (если это важно).
[ServiceContract]
public interface IService
{
[OperationContract(IsOneWay = true)]
void Send1(MyDataContract data);
[OperationContract(IsOneWay = true)]
void Send2(MyDataContract data);
}
[DataContract]
public class MyDataContract
{
[DataMember]
public string From { get; set; }
[DataMember]
public string Host { get; set; }
[DataMember]
public string To { get; set; }
[DataMember]
public DateTime SendTime { get; set; }
}
некоторая реализация сервиса
[OperationBehavior(TransactionScopeRequired = true,
TransactionAutoComplete = true)]
public void Send1(MyDataContract dc)
{......}
сервисная конфигурация:
<адрес конечной точки = "net.msmq: // localhost / private / myservice" binding = "netMsmqBinding" contract = "IService" bindingConfiguration = "NetMsmqBinding_IService" />
Сообщения в очереди - клиентский сервис работает нормально.
Таким образом, во время выполнения метод Send1 службы host никогда не выполняется. Но я обрабатываю события HostFaults близко после перемещения сообщения из очереди повторных попыток во входящую очередь. Это все, что я могу сказать.
любая помощь?