2015-09-22 7 views
0

Я создал простую службу WCF с привязкой netHttp, а затем автоматически добавил ссылки на службы из нее в другое приложение с помощью «Добавить ссылку на службу | Обнаружение». Получающееся связывание выглядит странно.WCF: странная справочная служба

Вместо оригинала NetHttpBinding Я получаю CustomBinding.

Это работает, но досадно, что я не могу добавить maxReceivedMessageSize к пользовательской привязке.

Вопрос: Есть ли веская причина для этого, или я могу безопасно заменить пользовательскую привязку с помощью оригинального netHttpBinding?

app.config хозяина:

<endpoint address="images/netbh" binding="netHttpBinding" contract="WcfImageService.IImageService" bindingConfiguration="netHttp_bh" /> 

    <netHttpBinding> 
    <binding name="netHttp_bh" messageEncoding="Binary"> 
     <webSocketSettings transportUsage="Never"/> 
    </binding> 
    </netHttpBinding> 

клиента генерируется app.config:

 <customBinding> 
      <binding name="NetHttpBinding_IImageService1" > 
       <binaryMessageEncoding /> 
       <httpTransport /> 
      </binding> 
     </customBinding> 

     <endpoint address="http://localhost:8080/images/netbh" binding="customBinding" 
      bindingConfiguration="NetHttpBinding_IImageService1" contract="ImageServiceReference.IImageService" 
      name="NetHttpBinding_IImageService1" /> 

Я использую Visual Studio 2015, в случае, если это имеет значение.

ответ

1

Я не знаю, почему вы получаете пользовательский привязку в клиенте (я думаю, что инструмент wsdl.exe, который Visual Studio использует за кулисами, немного запутан), но вы можете смело заменить пользовательскую привязку с исходным webHttpBinding.

В качестве альтернативы, я думаю, вы также можете указать также можно указать MaxReceivedMessageSize на элементе < HttpTransport> как это:

<httpTransport maxReceivedMessageSize="2000000000" /> 
+0

Спасибо за подтверждение и подсказку с добавлением MaxReceivedMessageSize к HttpTransport. Оно работает! –

Смежные вопросы