views:

158

answers:

1

I have created a very simple WCF sandbox project using Visual Studio 2008, consisting of:

  • Console client application
  • WCF Service Library, running in WcfSvcHost.exe

I am unable to debug the WCF service on my Windows 7 x64 system. I get a popup saying:

Unable to automatically debug 'ServiceLibrary'. The remote procedure could not be debugged. This usually indicates that debugging has not been enabled on the server.

The service is the Visual Studio 2008 out of the box template, "IService1". The client calls the GetData() operation straight up, so nothing special there either.

I tried the suggestions in this question, which didn't lead me to a solution, but the WCF trace log contains a peculiar exception:

<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>

(Shortened the stack trace and stripped some uninteresting stuff, full text here)

It appears to be complaining about a domain name, but my computer is not inside any domain. I don't see a domain name in the above XML anywhere, but it does have my computer name (SUBSPACE). Anyone have any idea what could cause this?

Both client and service have this in their endpoint definitions, although I have tried taking it out or changing it to my computer name:

<identity>
    <dns value="localhost" />
</identity>

The service and client are debuggable when I start them individually using Debug - Start New Instance, but I'd like things to just work as they're supposed to...

A: 

The message

<ExceptionString>System.ComponentModel.Win32Exception: 
The specified domain either does not exist or could not be contacted</ExceptionString>

could indicate that something goes wrong when your machine tries to resolve "domain\username" and for some reason domain does not resolve correctly.

As you are running in workgroup mode it should resolve to your local machine. From a command prompt try running a simple:

ping %USERDOMAIN%

and see if that works. It should try to ping your local IP.

magnus
Pinging %USERDOMAIN% (= my computer name) works fine, so that doesn't seem to be the problem.
Thorarin