Пользовательская привязка / расширения WCF вызывает ошибку проверки в app.config - PullRequest
3 голосов
/ 29 января 2009

Мне было бы любопытно, если бы кто-нибудь знал, как это исправить: Когда я добавляю bindingExtension или bindingElementExtension в свою конфигурацию WCF, Visual Studio выдает предупреждение проверки схемы, поскольку имя расширения отсутствует в схеме system.serviceModel:

Предупреждение 1 Элемент 'bindings' имеет недопустимый дочерний элемент 'nmsBinding'. Список возможных элементов ожидается: 'BasicHttpBinding, customBinding, msmqIntegrationBinding, netPeerTcpBinding, netMsmqBinding, netNamedPipeBinding, NetTcpBinding, wsFederationHttpBinding, ws2007FederationHttpBinding, WsHttpBinding, ws2007HttpBinding, WSDualHttpBinding, mexHttpBinding, mexHttpsBinding, mexNamedPipeBinding, mexTcpBinding, WebHttpBinding, netTcpContextBinding, wsHttpContextBinding, basicHttpContextBinding' * 1003. *

Это может быть глупый вопрос, но есть ли способ «динамически» зарегистрировать эти расширения в 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 Ответ

3 голосов
/ 12 февраля 2009

Я полагаю, что VS2008 использует файл "C: \ Program Files \ Microsoft Visual Studio 9.0 \ xml \ Schemas \ DotNetConfig.xsd" (с установкой по умолчанию) для проверки файла конфигурации. Вы можете изменить этот файл или указать другую схему в разделе «Свойства» для файла конфигурации.

Однако, если вы получаете только предупреждения о времени проектирования, это может не стоить хлопот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...