Я создал очень простой проект песочницы WCF с использованием Visual Studio 2008, состоящий из:
- Консольное клиентское приложение
- Сервисная библиотека WCF, запущенная в WcfSvcHost.exe
Я не могу отладить службу WCF в моей системе Windows 7 x64. Я получаю всплывающее сообщение:
Невозможно автоматически отладить
'ServiceLibrary. Удаленная процедура
не может быть отлажено. Это обычно
указывает на то, что отладка не была
включен на сервере.
Служба представляет собой готовый шаблон Visual Studio 2008 «IService1». Клиент вызывает операцию GetData()
прямо вверх, поэтому там тоже ничего особенного.
Я попробовал предложения в этом вопросе , которые не привели меня к решению, но в журнале трассировки WCF есть своеобразное исключение:
<E2ETraceEvent>
<System>
<EventID>131075</EventID>
<Type>3</Type>
<SubType Name="Warning">0</SubType>
<Level>4</Level>
<TimeCreated SystemTime="2010-05-28T17:43:31.0190250Z" />
<Source Name="System.ServiceModel" />
<Correlation ActivityID="{2f5e007a-d4d0-4046-9ab5-f6384b862a4f}" />
<Execution ProcessName="WcfSvcHost" ProcessID="6692" ThreadID="5" />
<Channel />
<Computer>SUBSPACE</Computer>
</System>
<ApplicationData>
<TraceData>
<DataItem>
<TraceRecord Severity="Warning">
<Description>Throwing an exception.</Description>
<AppDomain>D:\PathTo\Service\bin\Debug\ServiceLibrary.dll.config</AppDomain>
<Exception>
<ExceptionType>System.ComponentModel.Win32Exception, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
<Message>The specified domain either does not exist or could not be contacted</Message>
<StackTrace>
at System.ServiceModel.UpnEndpointIdentity.GetUpnFromDownlevelName(String downlevelName)
at System.ServiceModel.UpnEndpointIdentity.GetUpnFromWindowsIdentity(WindowsIdentity windowsIdentity)
at System.ServiceModel.UpnEndpointIdentity.EnsureIdentityClaim()
at System.ServiceModel.EndpointIdentity.get_IdentityClaim()
at System.ServiceModel.Security.SecurityUtils.GetSpnFromIdentity(EndpointIdentity identity, EndpointAddress target)
...
</StackTrace>
<ExceptionString>System.ComponentModel.Win32Exception: The specified domain either does not exist or could not be contacted</ExceptionString>
<NativeErrorCode>54B</NativeErrorCode>
</Exception>
</TraceRecord>
</DataItem>
</TraceData>
</ApplicationData>
</E2ETraceEvent>
(Сократил след стека и удалил некоторые неинтересные вещи, полный текст здесь )
Похоже, что он жалуется на доменное имя, но мой компьютер не находится внутри какого-либо домена. Я нигде не вижу доменного имени в приведенном выше XML-файле, но у него есть имя моего компьютера (SUBSPACE). Кто-нибудь есть идеи, что может вызвать это?
И клиент, и служба имеют это в своих определениях конечных точек, хотя я пытался удалить его или изменить его на имя своего компьютера:
<identity>
<dns value="localhost" />
</identity>
Служба и клиент отлаживаются, когда я запускаю их по отдельности с помощью Отладка - запуска нового экземпляра , но я бы хотел, чтобы все работало так, как должно ...