WCF自定义绑定/扩展导致app.config中的验证错误

时间:2009-01-29 17:44:36

标签: wcf

我很好奇是否有人知道如何解决这个问题:当我将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'

这可能是一个愚蠢的问题,但有没有办法用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>

1 个答案:

答案 0 :(得分:3)

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

但是,只要您只收到设计时警告,就可能不值得。