2012-02-28 51 views
3

Possible Duplicate:
The element ‘behavior’ has invalid child element ‘myFaultExtension’ in wcf app.config聽證會「元素‘行爲’具有無效的子元素」應該被忽略,但由於它

我試圖實現從Creating and Handling Faults in Silverlight更新服務引用阻止。 (This項目工程在我的機器上。)

我得到一個Visual Studio警告:

The element 'behavior' has invalid child element 'betterErrorMessagesFaults'.

其他答案其他地方說我應該忽略它,但我可以,因爲我不無法更新非.Web項目中的服務引用(包含所有xaml文件的服務引用)。當我嘗試,我得到這個錯誤:

Parser Error Message: The type 'MyProject.Web.Services.BetterErrorMessagesFaultBehavior, MyProject.Web.Services, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' registered for extension 'betterErrorMessagesFaults' could not be loaded.

這裏的web.config的有關部分:

<system.serviceModel> 
    <extensions> 
    <behaviorExtensions> 
     <add name="betterErrorMessagesFaults" 
     type="MyProject.Web.Services.BetterErrorMessagesFaultBehavior, MyProject.Web.Services, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> 
    </behaviorExtensions> 
    </extensions> 
    <services> 
    <service name="MyProject.Web.Services.Service2"> 
     <endpoint address="" binding="customBinding" 
      bindingConfiguration="MyProject.Web.Services.Service2.customBinding0" 
      contract="MyProject.Web.Services.Service2" 
      behaviorConfiguration="BetterErrorMessagesFaultBehavior"/> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 
    </services> 
    <behaviors> 
    <serviceBehaviors> 
     <behavior name=""> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
     <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
     </behavior> 
    </serviceBehaviors> 
    <endpointBehaviors> 
     <behavior name="BetterErrorMessagesFaultBehavior"> 
     <betterErrorMessagesFaults/> 
     </behavior> 
    </endpointBehaviors> 
    </behaviors> 
    <bindings> 
    <customBinding> 
     <binding name="MyProject.Web.Services.Service2.customBinding0"> 
     <binaryMessageEncoding> 
      <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" 
      maxDepth="2147483647" maxNameTableCharCount="2147483647" 
      maxStringContentLength="2147483647" /> 
     </binaryMessageEncoding> 
     <httpTransport maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" 
      maxBufferSize="2147483647" /> 
     </binding> 
    </customBinding> 
    </bindings> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 
</system.serviceModel> 

BetterErrorMessagesFaultBehavior只是類here on MSDN的複製粘貼;只更改了名稱(我用默認名稱嘗試),命名空間更改爲MyProject.Web.Services

我也試過交換

<add name="betterErrorMessagesFaults" 
    type="MyProject.Web.Services.BetterErrorMessagesFaultBehavior, MyProject.Web.Services, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> 

<add name="betterErrorMessagesFaults" 
    type="MyProject.Web.Services.BetterErrorMessagesFaultBehavior, MyProject.Web.Services"/> 

但沒有效果。我讀到這對空間等非常敏感,但我看不到任何問題區域。我也看了AssemblyInfo和版本是1.0.0.0,文化是空白(「」),我不知道什麼PublicKeyToken是,但我懷疑這不是問題在這裏...

所以我很難過,不知道在哪裏看下。

回答

3

可能比晚一點點,但你可以驗證你的類型名稱權由執行類似:

Console.WriteLine(typeof(BetterErrorMessagesFaultBehavior).AssemblyQualifiedName);

應包含的公鑰部分給你作比較......

相關問題