views:

469

answers:

1

All,

I'm a little new to WCF over IIS but have done some ASMX web services before. My WCF service is up and running but the helper page generated by the web service for me has the default names, i.e. the page that says:

You have created a service.

To test this service, you will need to create a client and use it to call the service. You can do this using the svcutil.exe tool from the command line with the following syntax:

svcutil.exe http://localhost:53456/ServicesHost.svc?wsdl

In a standard ASMX site I would use method/class attributes to give the web service a name and a namespace. When I click on the link the WSDL has:

<wsdl:definitions name="SearchServices" targetNamespace="http://tempuri.org/" 

i.e. not the WCF Service Contract Name and Namespace from my Interface. I assume the MEX is using some kind of default settings but I'd like to change them to be the correct names. How can I do this?

+2  A: 

Add this to your service contract

[ServiceContract(Namespace = "http://some.com/service/", Name = "ServiceName"]

Add this to your service implementation

[ServiceBehavior(Namespace = "http://some.com/service/")]

Add this to your web.config

<endpoint binding="basicHttpBinding" bindingNamespace="http://myservice.com"....
Nix
I already have:[ServiceContract(Name = "XXXXServices",Namespace = "http://schemas/XXXX/2010/03")]public interface IPublicServicesDoesn't make any difference when I generate the WSDL from the page listed in my original post.The above interface is implemented by a class called SearchServices, hence the name generated in the WSDL definiton when I click on the http://localhost:53456/ServicesHost.svc?wsdl link
Graham