2014-01-22 127 views
0

我有一個WCF數據服務(5.6)在天青雲服務中的Webrole中運行。我不想公開元數據,但無論我如何設置行爲,它仍然會返回元數據。保護WCF數據服務元數據

這是從web.config

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <!-- To avoid disclosing metadata information, set the value below to false before deployment --> 
      <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" /> 
      <!-- To receive exception details in faults for debugging purposes, set the value below to true. 
       Set to false before deployment to avoid disclosing exception information --> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

的片段......

任何幫助是極大的讚賞

阿爾貝託

回答

0

如果你不想暴露元數據,請嘗試完全刪除<serviceMetadata>節點。

+0

謝謝你的回答。是的,我試過了。我實際上嘗試了更多。不管它在我放置$元數據時仍然顯示元數據。我想知道它是否與綁定有關... –

+0

您是否也可以顯示您的「mex」端點?它是否通過名稱引用「行爲」?如果是這樣,問題可能是您的'行爲'標記沒有'name'屬性。 – Darren

+0

我已經把WCF數據服務擱置了,因爲我認爲WebApi將在我的項目中提供更多的靈活性。不,我不是通過名稱來引用行爲,而且我正在重新閱讀綁定文檔以查看我是否需要實際具體。感謝您的幫助。無論如何,我會將問題標記爲已回答。 –

0

您選擇的詞似乎意味着您覺得元數據在某種程度上是敏感的,應該受到保護。這將是完全錯誤的。如果我可能會建議這可能是XY problem,你能否解釋爲什麼你需要「保護」它?

如果您的需求包含安全性以外的其他方面,那麼請不要忽視這一點,但無論您做什麼,請記住,這些元數據在很大程度上使OData有用。得益於此,客戶不需要重新定義數據模型(至少對於他們的DAL/DTO),而這些數據模型可以實時自動生成並與服務器保持同步。當手動完成時,這通常涉及到所有客戶端軟件開發人員的大量工作。