2011-09-07 2 views
-1

В настоящее время я работаю над решением для загрузки и загрузки файлов в службу WCF. Клиент - это класс, наследующий от ClientBase. Я прочитал MSDN article по потоковой передаче и ссылкам на StackOverflow и в других местах, но я не могу понять, почему я все еще получаю сообщение о том, что размер сообщения слишком мал. Я тестировал решение до сих пор с небольшими файлами, и он работает.Загрузка файлов в службу WCF из ClientBase <T>

служба размещается в IIS 7.5

Вот App.config из клиентского приложения

<system.web> 
    <httpRuntime maxRequestLength="67108864" /> 
</system.web> 
<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding messageEncoding="Mtom" transferMode="Streamed" name="LargeFileStreamingHttpBinding" 
        maxBufferSize="65536" 
        maxReceivedMessageSize="2147483647"> 
       <readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/> 
      </binding> 

     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://localhost/UpdateService.svc" 
         binding="basicHttpBinding" 
         contract="IUpdateService" 
         name="updateServiceEndpoint"/> 

    </client> 
</system.serviceModel> 

Вот соответствующие разделы сервера

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/> 

    <services> 
     <service name="UpdateService" behaviorConfiguration="UpdateServiceBehavior"> 
       <endpoint binding="basicHttpBinding" bindingName="LargeFileStreamingWebHttpBinding" contract="IUpdateService"></endpoint> 
       <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" /> 
     </service> 
    </services> 

    <behaviors> 
     <serviceBehaviors> 
       <behavior name="UpdateServiceBehavior" > 
         <serviceMetadata httpGetEnabled="true" /> 
         <serviceDebug includeExceptionDetailInFaults="true" /> 
       </behavior> 
     </serviceBehaviors> 
    </behaviors> 

    <bindings> 
     <basicHttpBinding> 
       <binding messageEncoding="Mtom" transferMode="Streamed" name="LargeFileStreamingWebHttpBinding" 
           maxBufferSize="65536" 
           maxReceivedMessageSize="2147483647" 
           /> 
     </basicHttpBinding> 
    </bindings> 
</system.serviceModel> 

Кроме того, я ve добавил следующее в обеих конфигурациях сервера и клиента:

<system.web> 
    <httpRuntime maxRequestLength="2147483647" /> 
</system.web> 

Это, как я инстанцировании клиент

public class UpdateClient : ClientBase<IUpdateService>, IUpdateService 
{ 
    public UpdateClient() : base("updateServiceEndpoint") {} 
} 

Так же есть идеи, где я мог бы быть неправильно? Любая помощь приветствуется.

-Спасибо!

+0

это имя службы класса просто «UpdateService», или же она принадлежит в некотором пространстве имен? Если последнее, вам нужно иметь полное имя на ', чтобы он мог выбрать конфигурацию. – carlosfigueira

+0

Я пропустил пространство имён сервисных контрактов ради краткости – abjbhat

+0

Проголосовало за закрытие как слишком локализованное, потому что никто, кто сделает эту ошибку, никогда не найдет ответ путем поиска этого вопроса. –

ответ

0

Найденный ответ - очень простую ошибку, запись клиента/конечная точка была недостающий атрибут bindingConfiguration