2011-10-04 72 views
2

我有以下WCF接口:WCF的ServiceContract命名空間更新

[ServiceContract] 
public interface IUser 
{ 
    [OperationContract] 
    string GetUser(); 
} 

其中我變爲這一個:

[ServiceContract(Namespace = "http://user.com")] 
public interface IUser 
{ 
    [OperationContract] 
    string GetUser(); 
} 

目標XML命名空間已經從默認tempuri.org改爲用戶。 com

這打破了現有客戶端的調用,因爲wsdl不同。

有什麼辦法可以在配置文件中指定這個命名空間嗎?這將幫助我保留現有客戶端的舊名稱空間並能夠升級WS。

回答

1

一個非常誠實的錯誤,在部署服務時可能很容易被忽略。在msdn論壇上找到這個線程,我認爲這可能只是訣竅。

這個想法很簡單,創建一個新的服務契約接口(使用正確的名稱空間),從現有服務契約(使用默認名稱空間)繼承它。使您的服務類實現新的服務合同,並要求客戶將端點更改爲新的服務合同。

URL:http://social.msdn.microsoft.com/Forums/en/wcf/thread/2bb09d41-7ee7-4e9d-bea8-95bd318a4247