Как мне создать удаленную консоль администратора для службы WCF, используя telnet / raw? - PullRequest
1 голос
/ 17 апреля 2009

У меня есть служба WCF, в настоящее время использующая конечную точку TCP. Вместо того, чтобы создавать отдельное консольное клиентское приложение для администрирования сервера, я хочу иметь возможность подключиться к серверу через telnet или даже просто подключиться с помощью необработанного соединения с использованием putty и выполнять команды ascii прямо на сервере.

Есть идеи, как мне поступить? Не эксперт по WCF, поэтому был бы признателен за любую помощь. Спасибо

Ответы [ 3 ]

2 голосов
/ 17 апреля 2009

Для администрирования моих приложений WCF я размещаю в IIS и имею подпапку в виртуальном каталоге приложения со страницами Admin aspx. Папка защищена от несанкционированного доступа с использованием ролей ASP.NET.

Папка Admin включает в себя независимые от приложения страницы (например, ведение журнала, просмотр файлов журнала) и, при необходимости, страницы, специфичные для приложения.

Поскольку страницы ASP.NET выполняются в том же AppDomain, что и размещенные службы WCF, это предел возможностей для добавления функциональности для инструментов и динамической конфигурации.

2 голосов
/ 17 апреля 2009

Я сомневаюсь, что вы могли бы сделать это - WCF всегда будет использовать свои определенные конечные точки - TCP, HTTP - что угодно. Я не знаю ни о какой привязке telnet или необработанном соединении, как вы упоминаете.

С моей точки зрения, почему бы не создать сервисный контракт для целей администратора и просто выполнить его с помощью HTTP и / или TCP из консольного приложения? Кажется, легче, чем пытаться «схватить» что-то, о чем на самом деле не думали.

Марк

1 голос
/ 17 апреля 2009

Я не думаю, что WCF поддерживает нестандартную обработку команд из коробки, и это будет довольно сложно, чтобы заставить это работать. Я бы предложил

  1. Хост службы WCF внутри службы Windows, а не IIS
  2. Создайте прослушиватель сокетов внутри службы Windows, прослушивающей порт по вашему выбору
  3. Напишите некоторый код для обработки вашей команды при поступлении данных в сокет.
...