I am have a simple hosting WCF service side-by-side with ASP.NET and have a difficult time to debug/step-in to the service. Below are the files. Thanks in advance!
Web.config
<system.web>
<compilation debug="true" targetFramework="4.5.2"/>
<httpRuntime targetFramework="4.5.2"/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="mexBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
<service name="WCF_TestService.TestService" behaviorConfiguration="mexBehavior">
<endpoint address="" binding="basicHttpBinding" contract="WCF_TestService.ITestService"></endpoint>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
ITestService.cs
namespace WCF_TestService
{
[ServiceContract]
public interface ITestService
{
[OperationContract]
string GetMessage(string name);
}
}
TestService.svc.cs
The breakpoint is set on return
and the prompted message is The breakpoint will not currently be hit. No symbols have been loaded for this document
namespace WCF_TestService
{
public class TestService : ITestService
{
public string GetMessage(string name)
{
return $"Hello {name}";
}
}
}
Client
The client is the console application.
namespace Client
{
class Program
{
static void Main(string[] args)
{
ServiceProxy.TestServiceClient client = new ServiceProxy.TestServiceClient();
Console.WriteLine(client.GetMessage("John Smith"));
Console.ReadLine();
}
}
}
Per your comment about both projects in the same solution and WCF not being self hosted, you will need to configure your solution to have multiple startup projects.
In the solution explorer, select the solution, right click and select properties. Expand the Common Properties selection in the pop-up and click Startup Project. Click Multiple Startup Projects and select your projects and build action. Set appropriate order as well (WCF first in this case)
Also do not forget to change your endpoint address of your console app to point to the appropriate IIS port that your wcf project is running on when running, it may be in your best interest to setup configuration transforms for debug, and prod so you are not constantly switching these out in your config.
If the only reason you created the console project was to interact with your WCF service for testing then I would urge you to use WCF Test CLient instead. It should be installed by default on any VS instance.