2009-09-25 53 views
0

我的WCF和ADO.NET數據服務相當重的用戶。我在很多不同系統之間的鏈接中使用它們。現在有時我會更新這樣一個鏈接的一面,並忘記另一面。另一方面會崩潰,大部分時間都會出現一些無法找到的類似錯誤。檢查WCF/ADO.NET服務定義

是否有可能以比較實際的服務定義生成的代理來檢查服務可能已被更新?這樣我可以拋出一個更有用的錯誤,指出定義不同步,並且任何一方都應該更新以再次匹配正確的定義。

這同樣適用於WCF服務,以及ADO.NET數據服務,所以我正在尋找一種方式來比較兩者。

回答

0

一種方法,很多專家呼籲將基於你的方法和數據合同的命名空間正在使用的版本。

E.g.你原來的第一個版本是這樣的:

[ServiceContract(Namespace="http://services.yourcompany.com/YourService/2009/09")] 
interface IMyService 
{ 
... 
} 

,然後如果你改變你的月服務定義,你會命名空間更改爲:

[ServiceContract(Namespace="http://services.yourcompany.com/YourService/2009/10")] 
interface IMyService2 
{ 
... 
} 

這樣的話,你一定會客戶永遠不會意外地調用過時的服務,因爲名稱空間不匹配。

另一個想法可能是對每個服務的「GetVersion」的方法,並調用開始打電話給你的實際服務方法,以檢查一種新的服務版本是否已部署之前。但是對於這一點,你是獨立存在的 - WCF或ADO.NET DataServices中沒有內在的東西來促成這一點。

Marc

+0

嗯,太糟糕了。一個ValidateServiceDefinition方法或類似的東西會很棒。 – Jasper 2009-09-28 10:06:10