Подключение к одной службе WCF с двумя разными привязками конечных точек.

Я новичок в WCF и (надеюсь) у меня проблема с нубом. Я искал на сайте и не нашел ответ, который я ищу. Прошу прощения, если на этот вопрос уже был ответ и я его пропустил.

Я программно подключаюсь к своему сервису с помощью ChannelFactory. Проблема, с которой я сталкиваюсь, заключается в том, что клиент не может подключиться к моей первой конечной точке службы, пока я не закомментирую вторую (MSMQ). Надеюсь, это поможет.

Контракты разные, и я указываю правильные привязки (WSDualHttpBinding и NetMsmqBinding соответственно) на стороне клиента.

Пожалуйста, дайте мне знать, если есть способ исправить это, или если требуется дополнительная информация.

Я ценю помощь.

Тайлер

<services>          
   <service behaviorConfiguration="DefaultBehavior" name="[intentionally removed]"> 
       <endpoint 
           address="[intentionally removed]" 
           behaviorConfiguration="DefaultEndpointBehavior"
           binding="wsDualHttpBinding" 
           bindingConfiguration="DualBinding"
           name="WrapperEndpoint"
           contract="[intentionally removed]" 
       />
       <endpoint 
           address="[intentionally removed]"
           behaviorConfiguration="DefaultEndpointBehavior"
           binding="netMsmqBinding"
           bindingConfiguration="MsmqBinding"
           name="MsmqEndpoint"      
           contract="[intentionally removed]"
       />
    </service>
</services>

person Tyler    schedule 01.07.2011    source источник
comment
Адреса конечных точек разные? Кроме того, можете ли вы опубликовать фрагмент кода, показывающий, как вы используете ChannelFactory?   -  person Tim    schedule 02.07.2011
comment
Вы заявили, что контракты разные, но я ожидаю, что они будут одинаковыми, и похоже, что в вашем коде вы используете IContract для обоих. Являются ли контракты для двух конечных точек одним и тем же интерфейсом или разными? Я считаю, что обычно WCF хотел бы, чтобы они были одинаковыми.   -  person CodingWithSpike    schedule 05.07.2011
comment
Есть ли ошибка, которую выдает ваш клиент, когда не может подключиться? Кроме того, вы можете включить трассировку в службе WCF и посмотреть, получите ли вы что-нибудь значимое из журнала: msdn.microsoft.com/en-us/library/ms751526.aspx   -  person CodingWithSpike    schedule 05.07.2011


Ответы (1)


Эта тема может быть связана с: http://social.msdn.microsoft.com/Forums/is/wcf/thread/643371b4-00a7-472b-8bea-3055f2eb90ed

Я не думаю, что у вас может быть одна услуга с двумя разными контрактами. Я думаю, что когда у вас есть обе конечные точки, WCF просто не запускается должным образом, но когда вы закомментируете 1 конечную точку, она работает нормально, потому что все конечные точки используют один и тот же контракт.

WCF также попытается определить WSDL для службы (не для конечной точки) на основе контракта, но если служба имеет более одного контракта, она не будет знать, что делать.

Правильнее было бы разделить это на 2 службы.


Изменить:

С другой стороны, в этой статье указано, что наличие службы с несколькими конечными точками с разные контракты работают нормально, так что, возможно, я ошибаюсь.

Хм....

person CodingWithSpike    schedule 05.07.2011