2012-04-26 170 views
9

我有一個自我託管的C#WCF服務,它爲各種目的創建了20多個端點。每個代碼都在代碼本身中配置,並在服務的app.config中包含一些基本的配置項,例如端口和地址。該服務對於測試客戶非常有用,但尚未得到廣泛測試。wcf配置文件vs代碼配置的優點和缺點

我對標準的wcf配置文件方法有些擔心,因爲我害怕最終用戶會搞砸,因此在代碼中做了所有事情。

在配置文件中進行配置是否是一個比較好的主意,因爲最終用戶可以根據自己的需求對其進行自定義,或者對於大多數需求,代碼中的方法是否足夠?

+0

我實際上很喜歡這個問題的明確答案,但我很想暗示它對此有點開放。然而,我對這個問題的看法感興趣。 – Jodrell 2012-04-26 16:36:37

回答

5

WCF的主要優點之一是將連接細節從代碼中抽象出來。如果您需要更改任何服務參數,則可以更輕鬆地完成web.config中的操作,而無需重新編譯。例如,您可能需要更改「端口和地址」。如果你是在代碼中做這件事,你需要重建,這可能是不切實際的。此外,我不知道爲什麼終端用戶會正常地搞亂web.config,除非真的有必要。

總之,除非你有充分的理由不使用配置文件,否則你應該使用它們來獲得WCF提供的抽象的全部好處。

3

你需要問自己一些問題

  • 做不同的開發商有自己的機器上的值不同?
  • 會不會與其他人不能改變這些設置值? (例如管理員)
  • 某些值(例如消息大小)是否需要稍後進行性能調整?

如果對任何這些問題的答案是肯定的,那麼你需要將設置移動到.config文件中。如果您擔心理解其他設置的客戶在意外時會弄亂wcf設置,您可以通過將configSource屬性添加到每個標記的web.config或app.config文件來始終分隔設置,並將您的配置的一部分將子目錄中的文件分開以減少意外更改的可能性。

0

簡單,

如果使用.config文件,那麼你將能夠改變配置的代碼被編譯之後。這可能是好的或壞的,取決於你的情況。