2009-01-29 61 views
3

我很好奇如果有人知道如何解决这个问题:当我向我的WCF配置中添加bindingExtension或bindingElementExtension时,Visual Studio会引发架构验证警告,扩展名不在system.serviceModel模式中:WCF自定义绑定/扩展在app.config中导致验证错误

警告1元素'绑定'具有无效的子元素'nmsBinding'。 'basicHttpBinding的,customBinding,msmqIntegrationBinding,netPeerTcpBinding,netMsmqBinding,netNamedPipeBinding,NetTcpBinding的,wsFederationHttpBinding,ws2007FederationHttpBinding,的wsHttpBinding,ws2007HttpBinding,wsDualHttpBinding,mexHttpBinding,mexHttpsBinding,mexNamedPipeBinding,mexTcpBinding,的WebHttpBinding,netTcpContextBinding,wsHttpContextBinding,basicHttpContextBinding':预期可能元素的列表。

这可能是一个愚蠢的问题,但有没有办法“动态”注册这些与Visual Studio的扩展,以便他们验证?我想我可以在视觉工作室配置中的某处放置一个xsd,但如果还有其他一些神奇的方法,我宁愿不这样做。

这里是我的serviceModel配置是什么样子:

<system.serviceModel> 

    <services> 
     <service name="Zed.Apache.NMS.WCF.Test.Server.TestApacheNMSService"> 
      <endpoint 
       name="nmsServiceEndpoint" 
       address="tcp://localhost:61616" 
       binding="nmsBinding" 
       bindingConfiguration="defaultNmsBinding" 
       contract="Zed.Apache.NMS.WCF.Test.Server.ITestApacheNMSService" /> 
     </service> 
    </services> 

    <bindings> 
     <nmsBinding> <!-- VALIDATION ERROR HERE --> 
      <binding name="defaultNmsBinding" 
        destination="TestApacheNMSQueue" 
        destinationType="Queue" /> 
     </nmsBinding> 
    </bindings> 

    <extensions> 
     <bindingExtensions> 
      <add name="nmsBinding" 
       type="Apache.NMS.WCF.NmsBindingCollection, Zed.Apache.NMS.WCF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
     </bindingExtensions> 
    </extensions> 

</system.serviceModel> 

回答

3

我认为VS2008使用文件 “C:\ Program Files文件\微软的Visual Studio 9.0 \ XML \架构\ DotNetConfig.xsd”(默认安装)验证配置文件。您可以更改此文件或在“属性”下为配置文件指定另一个架构。

但是,只要您只收到设计时间警告,它可能不值得麻烦。

+0

好酷,谢谢你的答案。 – 2009-02-12 23:38:06