Просто поместите ваш сервис в консольное приложение, чтобы к нему можно было получить доступ.
- Создайте новый проект консольного приложения в своем решении, назвав его чем-то, что имеет смысл (если ваша служба называется
MyService
возможно MysServiceConsoleHost
или некоторое факсимильное сообщение). - Включите ссылку на сервисный проект в этом проекте.
- В вашем новом проекте (program.cs) есть что-то вроде следующего:
using System;
using System.ServiceModel;
class Program
{
static String TITLE_TEXT = "MyService -- Console Host ({0})" + (System.Diagnostics.Debugger.IsAttached?" [DEBUG]":"");
static void Main(string[] args)
{
Console.Title = String.Format(TITLE_TEXT, "Not Running");
try
{
ServiceHost host = new ServiceHost(typeof(MyService));
Console.Title = String.Format(TITLE_TEXT, "Starting");
host.open();
Console.Title = String.Format(TITLE_TEXT, "Running");
Console.WriteLine("Service is started, press any key to exit.");
Console.ReadKey();
Console.Title = String.Format(TITLE_TEXT, "Closing");
host.close();
host = null;
Console.Title = String.Format(TITLE_TEXT, "Closed");
}
catch (Exception ex)
{
Console.Title = String.Format(TITLE_TEXT, "Exception");
Console.WriteLine("An error occured while running the host:");
Console.WriteLine(ex.Message);
Console.WriteLine();
Console.WriteLine(ex.StackTrace);
Console.ReadLine();
}
}
}
Замените экземпляры MyService
, если необходимо, затем запустите его.Убедитесь, что у вас есть файл .config, в котором указываются конечные точки вашей службы, порт для запуска и т. Д. Тогда любой может получить доступ к вашей службе, и, при необходимости, вы можете выполнить отладку через службу во время активных вызовов.