Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2010, 12:01   #1
Arnezami
Форумчанин
 
Регистрация: 04.10.2009
Сообщений: 147
Восклицание Проблема кофигурации WCF сервиса

Недавно столкнулся с проблемой настройки WCF: При работе клиента отобразило исключение, из которого я понял, что максимальная длина массива, передаваемая через службу WCF равна 16384 (Значение по умолчанию). Я с удивлением иду в настройки App.conf и смотрю что у меня прописано намного больше, но WCF всё равно генерит свои настройки по - умолчанию. Причину я так найти и не смог. Вот мой конфиг настроек:

Код:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    
    <bindings>     
     
      <wsHttpBinding>
        <binding name="CnClientService" closeTimeout="00:01:00"
            openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
            bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
            maxBufferPoolSize="500000" maxReceivedMessageSize="500000"
            messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
            allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="500000"
              maxBytesPerRead="4096" maxNameTableCharCount="500000" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00"
              enabled="false" />
          <security mode="None">
            <transport clientCredentialType="Windows" proxyCredentialType="None"
                realm="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true"
                establishSecurityContext="true" />
          </security>
        </binding>
      </wsHttpBinding>


      <basicHttpBinding>
        <binding name="CnAdministratorService" closeTimeout="00:01:00"
            openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
            allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
            maxBufferSize="500000" maxBufferPoolSize="500000" maxReceivedMessageSize="500000"
            messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
            useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="500000"
              maxBytesPerRead="4096" maxNameTableCharCount="500000" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None"
                realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
      
    </bindings>
    
    <behaviors>
      <serviceBehaviors>
        <behavior name="CnServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>   
      </serviceBehaviors>
    </behaviors>
    <services>
      
      <service behaviorConfiguration="CnServiceBehavior" name="CnWcf.Classes.Client">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8000/CnWcf/Client"/>
          </baseAddresses>
        </host>

        <endpoint address="service"
                  binding="wsHttpBinding"
                  bindingConfiguration="CnClientService"
                  name="CnClientService"
                  contract="CnWcf.Interfaces.IClient" />
        
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
      
      <service behaviorConfiguration="CnServiceBehavior" name="CnWcf.Classes.Admin">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8001/CnWcf/Admin" />
          </baseAddresses>
        </host>
        <endpoint address="service" 
                  binding="basicHttpBinding"                 
                  bindingConfiguration="CnAdministratorService"
                  name="CnAdministratorService"
                  contract="CnWcf.Interfaces.IAdmin" />
        
        <endpoint address="mex" 
                  binding="mexHttpBinding" 
                  contract="IMetadataExchange" />
      </service>
      
    </services>
  
  </system.serviceModel>
</configuration>

<!--bindingConfiguration="action"-->
Ув. Форумчане! Если мои советы были Вам полезны, не забывайте благодарить в виде повышение рейтинга!!!
http://vkontakte.ru/id6715558
Arnezami вне форума Ответить с цитированием
Старый 03.07.2010, 12:02   #2
Arnezami
Форумчанин
 
Регистрация: 04.10.2009
Сообщений: 147
Восклицание

Вот настройки, которые отображаються в службе IAdmin:

Код:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="CnAdministratorService" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="None">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:8001/CnWcf/Admin/service"
                binding="basicHttpBinding" bindingConfiguration="CnAdministratorService"
                contract="IAdmin" name="CnAdministratorService" />
        </client>
    </system.serviceModel>
</configuration>

Вот настройки, которые отображаються в службе IClient:

Код:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.serviceModel>
        <bindings>
            <wsHttpBinding>
                <binding name="CnClientService" closeTimeout="00:01:00" openTimeout="00:01:00"
                    receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false"
                    transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                    allowCookies="false">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
                        enabled="false" />
                    <security mode="None">
                        <transport clientCredentialType="Windows" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="Windows" negotiateServiceCredential="true"
                            establishSecurityContext="true" />
                    </security>
                </binding>
            </wsHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:8000/CnWcf/Client/service"
                binding="wsHttpBinding" bindingConfiguration="CnClientService"
                contract="IClient" name="CnClientService" />
        </client>
    </system.serviceModel>
</configuration>
Ув. Форумчане! Если мои советы были Вам полезны, не забывайте благодарить в виде повышение рейтинга!!!
http://vkontakte.ru/id6715558
Arnezami вне форума Ответить с цитированием
Старый 03.07.2010, 12:07   #3
Arnezami
Форумчанин
 
Регистрация: 04.10.2009
Сообщений: 147
По умолчанию

Проблема заключается в том, что игнорируя мои настройки, WCF устанавливает их по-умолчанию
Ув. Форумчане! Если мои советы были Вам полезны, не забывайте благодарить в виде повышение рейтинга!!!
http://vkontakte.ru/id6715558
Arnezami вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема запуска нескольких WCF Сервисов Arnezami Общие вопросы .NET 1 24.06.2010 20:34
WCF - ошибка при запуске службы Дамир Общие вопросы .NET 1 12.04.2010 23:35
Нужна программа для расчёта кофигурации обогрева Shtiever Фриланс 3 07.06.2009 20:34
WCF Чат OrdJONY Обсуждение статей 0 19.03.2009 15:54
WCF + Ip Malder Общие вопросы .NET 0 29.08.2008 22:58