Как проверить наличие net.tcp WCF сервис

После нескольких попыток я наконец нашел решение [1]:

/*/
/*.*
!.git*
!/wordpress

Объяснение построчно:

  1. Игнорировать все каталоги в корне.
  2. Игнорировать все файлы с расширениями в корне.
  3. Разрешить само .gitignore (и, возможно, .gitattributes).
  4. Разрешить нужный каталог со всеми подкаталогами

[1] Ограничения (о которых я знаю):

  1. Он не игнорирует файлы без расширения в корне (и добавление /* нарушит всю схему).
  2. Каталог, который вы хотите включить в строку 4 (в данном случае wordpress), не может иметь . в имени (например, wordpress.1 не будет работать). Если у него есть ., удалите строку 2 и найдите другой способ исключить все файлы в корне.
  3. Проверено только в Windows с git version 2.17.1.windows.2
15
задан Pablo Retyk 19 May 2009 в 10:22
поделиться

4 ответа

Существует реализация WS-Discovery, которая позволит вам прослушивать объявления о повышении / понижении для вашей службы. Это также очень удобная форма разрешения адресов службы, поскольку она использует многоадресные сообщения UDP для поиска службы, а не настраивает один заданный адрес на клиенте. WS-Discovery для WCF

Также есть реализация, выполненная сотрудником Microsoft: Пример реализации WS-Discovery

.NET 4.0 будет включать это изначально. Вы можете прочитать о реализации .NET 4.0 в блоге Хесуса Родригеса. В нем есть отличная диаграмма, в которой подробно описывается специальная коммуникация, происходящая в WS-Disco Использование WS-Discovery в WCF 4.0

Еще одна вещь, которую вы можете рассмотреть, особенно если ваши сообщения в основном односторонние, - это протокол, который работает изначально без подключения, как MSMQ. Я не знаю, как выглядит ваш дизайн для вашего приложения, но MSMQ позволит клиенту отправлять сообщение независимо от состояния службы, и служба получит его, когда вернется. Таким образом, вашему клиенту не нужно так часто блокировать попытки получить подтверждение того, что служба работает, прежде чем общаться ... он просто сработает и забудет.

Надеюсь, это поможет.

24
ответ дан 1 December 2019 в 02:10
поделиться

Если вы выполняете синхронный вызов с ожиданием тайм-аута сервера в приложении с пользовательским интерфейсом, вам следует делать это в другом потоке. Снижает ли ваша производительность загрузка ЦП, доступность графического интерфейса или время настенных часов?

Вы можете исследовать, можете ли вы создать настраиваемую привязку для TCP, но с более быстрым таймаутом.

Я полагаю, вы знаете, что "IsOneWay = true "быстрее, чем запрос-> ответ в вашем случае, потому что вы все равно не ожидаете ответа, но тогда вы не получаете подтверждения или возвращаемых значений. Вы также можете реализовать двустороннюю связь, которая не является запросом-> ответом.

3
ответ дан 1 December 2019 в 02:10
поделиться

Если бы вы были в локальной сети, то можно было бы транслировать сигнал о том, что новый сервер работает. Клиенту необходимо будет прослушивать широковещательный сигнал и соответственно реагировать.

1
ответ дан 1 December 2019 в 02:10
поделиться

Я не думаю, что возможно сделать вызов на стороне сервера вашему клиенту, чтобы сообщить ему, что служба запущена ... Лучший способ, который я могу видеть, - это выяснить, как клиентский метод где услуга открыта и в хорошем состоянии. Если мне не хватает некоторых функций WCF ...

Есть хороший пост в блоге WCF: Доступность служб WCF , если вы заинтересованы в чтении.

1
ответ дан 1 December 2019 в 02:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: