Search code examples
asp.netwcfwcf-binding

Include WCF Service as part of an ASP.NET Application


I'm a little bit confused, I want a WCF service that takes values and returns them as XML, to be bound to an ASP.NET project. So I guess I should create WCF Service Library instead of Application, then bind it to ASP.NET via "Add Service Reference"? And, if I got it correctly, that allows me to use service without any proxy classes?

P.S. Service method code that returns XML is something like

[System.ServiceModel.OperationContract]
[System.ServiceModel.Web.WebGet(
             UriTemplate = "men", 
             ResponseFormat = System.ServiceModel.Web.WebMessageFormat.Xml)]
Human[] getAll();

getAll() just generates an array of objects of Human class.


Solution

  • Actually, you've got it partially correct, and partially sideways.

    Yes, use a WCF Service Library to create the service.

    No, don't use "Add Service Reference".

    Instead, add the WCF Service Library as a normal project reference to the ASP.NET web application. Then create a "YourService.svc" file as the endpoint for the service.

    <% @ServiceHost Service="MyNamespace.MyServiceImplementationTypeName" %>
    

    See "Deploying an Internet Information Services-Hosted WCF Service".

    You will also need some configuration in web.config. I don't know the best way to do this.