svcutil завершает работу с отказом в обслуживании из-за контракта на отказ
-
13-09-2019 - |
Вопрос
У нас есть автономный сервис WCF, который мы разрабатываем уже некоторое время.Как часть нашего стандарта, мы определили FaultContract, который мы применяем к операциям.
Недавно нам понадобилось добавить новый ServiceContract, поэтому мы сделали это и добавили к нему простой метод (void / без параметров).Однако, как только мы добавили этот контракт, SVCUtil больше не будет генерировать прокси для нас.Вместо этого он выдаст ошибку и скажет, что метаданные содержат ссылку, которая не может быть разрешена:'net.tcp://localhost/MyService' Конечная точка не прослушивает бла-бла-бла.
Мы, наконец, отладили его до того факта, что операционный контракт имеет faultcontract .Как только мы удаляем его, все работает нормально.Это для нас очень странно, потому что..
1) новый сервисный контракт находится в том же месте, что и все наши другие сервисные контракты
2) исполнитель сервисного контракта тот же, что и исполнитель всех других сервисных контрактов (не спрашивайте)3) FaultContract такой же, как и тот, который мы используем везде.
Есть какие-нибудь мысли о том, что может быть причиной такого странного поведения?
Решение
Оказалось, что это не ошибка FaultContracts.Вместо этого возникает проблема с использованием привязки netTcp для mex.После того, как вы достигнете определенного количества методов, это просто больше не будет работать.Решение состояло в том, чтобы переключиться на http-привязку.