WCF WSDL replace http://tempuri.org

Jeder Webservice sollte einen eindeutigen Namespace verwenden, um im Web auf jeden Fall eindeutig zu sein. Als Standardnamespace wird von ASP.NET Webservices (und auch von der WCF) folgender Namespace verwendet: http://tempuri.org
Dieses sollte als erstes modifiziert werden, damit man erst gar nicht mit einem solchen Namespace online geht.

Das Problem bei der WCF ist nun leider, dass der Namespace an drei verschiedenen Stellen angegeben werden muss, damit auch im WSDL der gewünschte Namespace durchgängig verwendet wird.

Als erstes muss man dem Namespace beim der Servicebeschreibung dem [ServiceContract] angeben:

[ServiceContract(Namespace = "http://dotnetnukeblog.de")]
public interface IPostService




Die zweite Stelle ist bei der Serviceimplementierung:

[ServiceBehavior(Namespace = "http://dotnetnukeblog.de")]
class PostService : IPostService


Die letzte Stelle ist bei der Konfiguration des Endpoints mit dem Attribute bindingNamespace:

<endpoint binding="basicHttpBinding"
bindingNamespace="http://dotnetnukeblog.de"....


Erst wenn an allen drei Stellen der Namespace gesetzt wurde, wird dieser auch durchgängig bei der WSDL Erzeugung genutzt.


Kommentar schreiben