1. 程式人生 > >WCF之“有零個操作;協定必須至少有一個操作”

WCF之“有零個操作;協定必須至少有一個操作”

今天在進行WCF宿主中“OpenHost”突然出現異常,異常資訊如下:

ContractDescription“***”有零個操作;協定必須至少有一個操作。

英文類似:
ContractDescription '***' has zero operations; a contract must have at least one operation.

說來也怪,在批量“OpenHost”過程中這個異常卻發生在中間某個型別上,其它大部分操作都是依葫蘆畫瓢進行的,對照了程式碼、配置檔案,一直沒有發現什麼大問題。“google”一下結果是出來不少,卻始終沒發現想要的答案。

沒辦法,拋開自已的工程,看系統自已生的WCF服務是怎樣。一對比,發現原來我犯了個低階錯誤。

在定義服務介面的時候沒加“[OperationContract]“。

想想也是在開發過程中我們常常會先繞過WCF分散式應用,而先實現介面,但在應用時卻簡單的加上了[ServiceContract(Name = "**")],但介面函式上卻沒加“[OperationContract]“,這樣可能導致執行時出現前面所說的異常。

當然,在我的實踐中有些服務沒加也照樣能執行,其中原委有待細究,在此提醒大家還是按規範來,免得出錯了不知從何著手。