今天剛剛偶然發現了這個,我找不到任何有關它的信息。所以這就是我在這裏問的原因。也許有人知道爲什麼。爲什麼完全合格的程序集名稱有時需要空格?
我爲web.config添加了一個自定義的WCF行爲擴展。它看起來像這樣:
<behaviorExtensions>
<add name="errorBehavior" type="MyNs.TracingErrorBehaviorElement,MyNs,
Version=1.0.6.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
(沒有在那裏空間:MyNs.TracingErrorBehaviorElement,MyNs
)
它的工作原理我的開發機上完全沒有問題,我們的臨時服務器上,我們的現場服務器等
今天我們將產品安裝到客戶服務器上,但得到以下異常:
System.Configuration.ConfigurationErrorsException:發生錯誤 cr吃 system.serviceModel/behaviors的配置節處理程序:擴展元素'errorBehavior' 無法添加到此元素。驗證擴展 在 system.serviceModel /擴展/ behaviorExtensions擴展集合中註冊...
花半小時尋找可能的原因,我添加空格完全合格的組件名稱網絡後。所以,我把它改爲:
<behaviorExtensions>
<add name="errorBehavior" type="MyNs.TracingErrorBehaviorElement, MyNs,
Version=1.0.6.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
(見空間:MyNs.TracingErrorBehaviorElement, MyNs
)
和它的工作。
有誰知道它爲什麼沒有在一些機器上的空間,而不是在其他機器上工作? 我檢查了.Net-versions
。他們匹配。它可能是由區域設置引起的嗎?
編輯說:
我檢查了所使用的.NET版本上的所有機器,他們都是一樣的:.NET 4.0 但我發現機器之間的區別在哪裏我的錯誤與缺失的空白,其他機器在哪裏工作: 所有沒有空白的機器都安裝了.Net Framework 4.5。所以它可能是那些在4.0中修復並且用4.5部署的錯誤之一,對吧?
http://blogs.msdn.com/b/scicoria/archive/2010/06/10/spaces-in-type-attribute-for-behavior-extension-configuration-issues.aspx –