Отладка в службу WCF - PullRequest
       36

Отладка в службу WCF

4 голосов
/ 29 июля 2011

Итак, мы работаем в архитектуре SOA.У меня есть служба, которую я пытаюсь отладить в вызове из приложения WinForms в другом решении.

В этом приложении winforms я правильно сослался на службу на localhost в app.config, итеперь я хочу запустить экземпляр службы WCF, чтобы установить точку останова и пройти через нее.

Когда я захожу в службу, я щелкаю правой кнопкой мыши по проекту, перехожу к свойствам и в разделе «Начать действие».«Я выбираю .exe файл в каталоге служб bin / debug /.Затем я сохраняю, компилирую и нажимаю F5, чтобы запустить его экземпляр.Я получаю эту ошибку:

enter image description here

Что мне делать?

Ответы [ 4 ]

6 голосов
/ 29 июля 2011

вы должны разместить службу в процессе, а затем отладить ее оттуда.Это может быть так же просто, как написание консольного приложения для размещения службы, либо написание службы Windows для ее размещения, либо приложения windows form, либо размещение ее в IIS.

вы можете разместить в консольном приложении, напримерИтак:

static void Main(string[] args)
{
  using (ServiceHost host = new ServiceHost(typeof(YourNamespace.YourServiceInterface)))
  {
    host.AddServiceEndpoint(typeof(
YourNamespace.YourServiceInterface), new NetTcpBinding(), "net.tcp://localhost:9000/YourService");
    host.Open();

    Console.WriteLine("Press <Enter> to terminate the Host 
application.");
    Console.WriteLine();
    Console.ReadLine();
  }
}

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

Debugger.Launch();

в качестве первой строки в методе OnStart, чтобы вы могли присоединить отладчик при запуске службы.Это поможет отладить любые проблемы запуска.В противном случае вы можете просто выбрать AttachToProcess в меню «Отладка» и присоединиться к работающей службе Windows.

вам нужно добавить using System.Diagnostics, чтобы использовать Debugger.Launch(); метод

1 голос
/ 29 июля 2011

Служба работает под управлением IIS или размещена самостоятельно? В любом случае, после запуска службы вы можете подключиться к ней, перейдя в Debug-> Attach Process.

Если вы работаете в IIS, вам нужно найти процесс w3wp.exe (IIS 7). Обратите внимание, что для подключения к этому процессу вам, скорее всего, придется запускать VS от имени администратора. Если вы используете более старую версию IIS, процесс называется что-то вроде aspnet_XXX.

После подключения вы можете установить точки останова и при необходимости отладить их.

1 голос
/ 29 июля 2011

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

0 голосов
/ 29 июля 2011

Что ж, вы получили эту ошибку при попытке запустить / отладить проект библиотеки классов, поэтому убедитесь, что ваш проект служб не такой.

Если вы хотите упростить (и нет проблем с инфраструктурой проектирования) запуск / отладку из VS, то сделайте это проектом приложения-службы WCF, в котором размещаются службы на веб-сайте, подобном проекту: https://dl -web.dropbox.com / get / Photos / web / wcfserviceapp.png? W = 44e8c6ed

Таким образом, вы можете запустить службу в ее решении, а затем запустить приложение winforms из его решения., затем вы можете перейти в меню «Отладка / Присоединить к процессу ...» и найти URL службы и порт: https://dl -web.dropbox.com / get / Photos / web / debugattachtoprocess.png? w= 8c917c28

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

...