troubleshooting Question

Cannot debug a WCF-Windows Service.

Avatar of mjgardne
mjgardne asked on
WCFWeb Services.NET Programming
1 Comment1 Solution1856 ViewsLast Modified:
Hello,

Our application accesses a WCF service, which is hosted by a Windows Service on a single computer.  The client application and service always will be on the same computer.

I've created a Windows Service that hosts a WCF service.  To test my Windows Service code, I created a console application that contains the same app.config and code as my Windows Service.  I start the console application in one debugging thread, and launch my client in another debugging thread.  Everything works perfectly and I can easily use the debugger.

Now the rub...

So, I created an installer and installed my Windows Service.  After successfully starting it, I successfully added the Service Reference to my client using http://localhost/VssService within Visual Studio 2010.  I successfully attached to the service via "Attach To Process".  I launched my client in a debugging thread, but when I try to step into a remote method, I get "Unable to automatically step into the server.  The debugger failed to stop in the server process."  This happens for both [NetNamedPipeBinding_IVssService] and [BasicHttpBinding_IVssService].  I have been struggling with this for hours and have run out of ideas, so I hope that you can help me.  I've included the app.config files for my Windows Service and Client application. Hopefully they will help.

I appreciate your taking time to read this question and hope that you can help be to resolve this problem...

Mike



===================== SERVICE APP.CONFIG =============================
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.serviceModel>
      
        <services>
            <service behaviorConfiguration="VssServiceBehavior" name="ClientSaver.VssService.VssService">
                <endpoint address="net.pipe://localhost/VssService/Pipe/" binding="netNamedPipeBinding"
                    bindingConfiguration="" contract="ClientSaver.VssService.IVssService" />
                <endpoint address="http://localhost/VssService/" binding="basicHttpBinding"
                    bindingConfiguration="" contract="ClientSaver.VssService.IVssService" />
                <endpoint address="http://localhost/VssService/MEX/" binding="mexHttpBinding"
                    bindingConfiguration="" contract="IMetadataExchange" />
                <host>
                    <baseAddresses>
                        <add baseAddress="http://localhost/VssService/" />
                    </baseAddresses>
                </host>
            </service>
        </services>

      <behaviors>
        <serviceBehaviors>
          <behavior name="VssServiceBehavior">
            <serviceMetadata httpGetEnabled="True" policyVersion="Policy15" />
            <serviceDebug includeExceptionDetailInFaults="False" />
          </behavior>
        </serviceBehaviors>
      </behaviors>      
    </system.serviceModel>
</configuration>
=======================================================


========================= CLIENT APP.CONFIG =============================
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <compilation debug="true" />
  </system.web>
  <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IVssService" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="None">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
            <netNamedPipeBinding>
                <binding name="NetNamedPipeBinding_IVssService" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
                    hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288"
                    maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="Transport">
                        <transport protectionLevel="EncryptAndSign" />
                    </security>
                </binding>
            </netNamedPipeBinding>
        </bindings>
        <client>
            <endpoint address="net.pipe://localhost/VssService/Pipe/" binding="netNamedPipeBinding"
                bindingConfiguration="NetNamedPipeBinding_IVssService" contract="VssService.IVssService"
                name="NetNamedPipeBinding_IVssService">
                <identity>
                    <servicePrincipalName value="host/DEVPC_W7.aboh.local" />
                </identity>
            </endpoint>
            <endpoint address="http://localhost/VssService/" binding="basicHttpBinding"
                bindingConfiguration="BasicHttpBinding_IVssService" contract="VssService.IVssService"
                name="BasicHttpBinding_IVssService" />
        </client>
        <services>
            <service name="ClientSaver.VssService.VssService">
                <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding"
                    bindingConfiguration="" contract="ClientSaver.VssService.IVssService" />

                <endpoint address="http://localhost/VssService/" binding="basicHttpBinding"
                    bindingConfiguration="" contract="ClientSaver.VssService.IVssService" />                            
            </service>
        </services>

      <behaviors>
        <serviceBehaviors>
          <behavior name="VssServiceBehavior">
            <serviceMetadata httpGetEnabled="true" policyVersion="Policy15" />
            <serviceDebug includeExceptionDetailInFaults="true" />
          </behavior>
        </serviceBehaviors>
      </behaviors>      
    </system.serviceModel>
</configuration>
ASKER CERTIFIED SOLUTION
mjgardne

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 1 Comment.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 1 Comment.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros