Como eu criaria um console administrativo remoto para um serviço WCF usando Telnet/Raw?
Pergunta
Eu tenho um serviço WCF atualmente usando um terminal TCP. Em vez de criar um aplicativo de cliente de console separado para administrar o servidor, eu quero a capacidade de telnet no servidor ou até mesmo conectar usando uma conexão bruta usando o PuTTY e executar comandos ASCII diretamente no servidor.
Alguma idéia de como eu iria fazer isso? Não é um especialista no WCF, por isso apreciaria qualquer ajuda. Obrigado
Solução
Eu não acho que o WCF suporta o processamento de comando personalizado fora da caixa e será um pouco de salto para fazer isso funcionar. eu sugeriria
- Hospedar o serviço WCF dentro de um serviço do Windows em vez de IIS
- Crie um ouvinte de soquete dentro do serviço Windows ouvindo na porta de sua escolha
- Escreva algum código para processar seu comando quando os dados chegarem ao soquete
Outras dicas
Duvido que você possa fazer isso - o WCF sempre terá que usar seus pontos de extremidade definidos - TCP, HTTP - qualquer que seja. Não estou ciente de nenhuma ligação de telnet ou conexão bruta, como você a menciona.
Na minha perspectiva, por que não criar um contrato de serviço para fins de administração e apenas atingi -lo com HTTP e/ou TCP de um aplicativo de console? Parece mais fácil do que tentar "aparafusar" algo que não foi realmente pensado.
Marc
Para administrar meus aplicativos WCF, hospede -me no IIS e tenho uma subpasta no diretório virtual do aplicativo com as páginas Admin ASPX. A pasta é protegida do acesso não autorizado usando as funções ASP.NET.
A pasta Admin inclui páginas independentes do aplicativo (por exemplo, gerenciamento de log, visualize arquivos de log) e quando apropriado páginas específicas do aplicativo.
Como as páginas do ASP.NET são executadas dentro do mesmo aplicativo que os Serviços WCF hospedados, o Sky é o limite, na medida em que adiciona funcionalidade para instrumentação e configuração dinâmica.