我很好奇是否有人知道如何解决这个问题:当我将bindingExtension或bindingElementExtension添加到我的WCF配置时,Visual Studio会抛出架构验证警告,因为扩展名不在system.serviceModel架构中:< / p>
警告1元素'bindings'具有无效的子元素'nmsBinding'。可能元素的列表预期: 'basicHttpBinding的,customBinding,msmqIntegrationBinding,netPeerTcpBinding,netMsmqBinding,netNamedPipeBinding,NetTcpBinding的,wsFederationHttpBinding,ws2007FederationHttpBinding,的wsHttpBinding,ws2007HttpBinding,wsDualHttpBinding,mexHttpBinding,mexHttpsBinding,mexNamedPipeBinding,mexTcpBinding,的WebHttpBinding,netTcpContextBinding,wsHttpContextBinding,basicHttpContextBinding'。 p>
这可能是一个愚蠢的问题,但有没有办法用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>
答案 0 :(得分:3)
我相信VS2008使用文件“C:\ Program Files \ Microsoft Visual Studio 9.0 \ xml \ Schemas \ DotNetConfig.xsd”(默认安装)来验证配置文件。您可以更改此文件或在“属性”下为配置文件指定另一个架构。
但是,只要您只收到设计时警告,就可能不值得。