#c# #asp.net #wcf
#c# #asp.net #wcf
Вопрос:
Я провожу тестирование дыма в своем существующем asp.net веб-приложение, я разработал одну службу WCF и добавил ссылку на эту службу в одно консольное приложение, и с помощью консольного приложения она внесет запись в базу данных, и эти данные будут использоваться для построения диаграммы в моем веб-приложении.
Теперь я хотел бы знать, как я могу проверить, запущен ли прослушиватель WCF или нет из моего веб-приложения, потому что я не добавил ссылку на службу WCF непосредственно в свое веб-приложение, нужно ли мне добавлять ее и вызывать любую функцию для проверки моего теста или я могу сделать это каким-то другим способомспособы?
Пожалуйста, помогите мне выполнить этот шаг, если этот вопрос имеет какой-то смысл!
Спасибо Аруну.
Ответ №1:
Чтобы проверить, является ли служба WCF «живой», вам нужно ее вызвать.
Обычно у меня вызывается метод service GetVersion
, который просто возвращает номер версии вызова класса service, который сообщит вам, запущена и запущена служба или нет.
Но имейте в виду: такие «пинги» к службе на самом деле говорят вам только о том, что она была запущена и доступна в тот самый момент, когда вы ее задали — через долю секунды служба может быть отключена, сеть может быть засорена или кабель мог быть отсоединен.
Я хочу сказать: выполнение этих «является ли служба WCF живой?» проверки на самом деле не так уж и полезны — следующий вызов с таким же успехом может завершиться неудачей. Итак, основная предпосылка такова: всегда будьте готовы к сбою вызова службы WCF — и будьте готовы справиться с этой ситуацией.
Комментарии:
1. Я планирую делать это периодически (каждые 1 минуту), чтобы администратор мог проверять состояние WCF на странице smoke test, правильно ли это?
2. @ArunRana: как я уже сказал, на самом деле это не так уж и полезно — в конце концов, вы всегда должны быть готовы справиться с ошибкой…
3. Я уже поставил try catch в WCF, но мой клиент хочет отслеживать статус WCF на странице smoke test каждые 1 минуту с другой проверкой базы данных. итак, мне нужно добавить ссылку на WCF в мое веб-приложение и вызвать эту функцию getversion или я могу это сделать без добавления ссылки??
4. @ArunRana: если вы хотите вызвать службу, у вас должен быть прокси-сервер на стороне клиента. Либо с помощью «Добавить ссылку на службу», либо с помощью «svcutil.exe » в командной строке
5. Как я могу это сделать, используя svcutil.exe , не могли бы вы, плз, дать какую-нибудь ссылку?