Как препятствовать тому, чтобы Visual Studio запустила WcfSvcHost.exe при отладке?

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

32
задан CJM 4 July 2017 в 12:55
поделиться

4 ответа

Перейдите к разделу WCF Options в странице свойств Вашего проекта WCF и снимите флажок, который говорит, 'Запускают Сервисный Хост WCF при отладке другого проекта в том же решении'.

43
ответ дан 27 November 2019 в 20:23
поделиться

Вы могли попытаться разгрузить проект WCF в решении, затем отладить.

Жаль было поздно, я неправильно читал последнюю часть к быстрому, затем единственный другой путь, о котором я знаю, состоит в том, чтобы прокомментировать веб-части в Property Group проекта. Это предотвратило всплывающее окно для меня

, Разгружают проект, Комментируют упомянутую часть, перезагрузку.

<!--<PublishUrl>http://localhost/WindowsFormsApplication1/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
<UpdateEnabled>true</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>true</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>-->
4
ответ дан 27 November 2019 в 20:23
поделиться

Не уверенный, если это устранило бы Вашу проблему или нет, но если Вы нажимаете на проект WCF в проводнике решения, посмотрите, имеет ли это свойство "Always Start When Debugging". Если это делает, установите его на ложь. То свойство только собирается для некоторых типов проекта, хотя, таким образом, оно зависит от точно, какой проект обрабатывает Вас по шаблону используемый.

1
ответ дан 27 November 2019 в 20:23
поделиться

Если вы создали проект WCF, а затем изменили его на проект консоли и обнаружили, что узел службы WCF все еще запускается, отредактируйте проект и отредактируйте ProjectTypeGuids, чтобы удалить WCF Тип проекта:

Старый:

<ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

Новый:

<ProjectTypeGuids>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
21
ответ дан 27 November 2019 в 20:23
поделиться