Гость
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Ошибка на больших сообщениях. / 2 сообщений из 2, страница 1 из 1
16.04.2014, 21:27
    #38616955
HowToSoap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка на больших сообщениях.
Привет.

В методе передается строка.
При попытке передать большой объем данных, вылетает ошибка "(400) Bad Request."

Причем я могу это прямо проверить. Специально формирую строку - если она мала, все проходит нормально, но стоит перейти некий порог, и ошибка !

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
            string DataToSend = "";
            string Buf = "01234567890";

            int count = 100 * 110;

            for (int i = 0; i < count; i++)
            {
                DataToSend += Buf;
            }




int count = 100 * 110; - вылетает ошибки
int count = 100 * 80; - все в порядке

Мне кажется проблема в том, что нужно перевести режим передачи на Streamed.
Я вроде бы перевел, но ошибка продолжается.

Конфиг файл клиента
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
<behaviors>
      <serviceBehaviors>
        <behavior name="My_ServiceBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <bindings>
      <basicHttpBinding>
        <binding name="MyBasicHttpBinding"
                 
				        closeTimeout="00:01:00"
                 openTimeout="01:00:00"
                 receiveTimeout="01:00:00"
                 sendTimeout="01:00:00"
                 maxBufferSize="2147483647"
                 maxBufferPoolSize="2147483647"
                 maxReceivedMessageSize= "2147483647"
                 messageEncoding="Text"
                 transferMode="Streamed">
          <readerQuotas
                maxDepth="2147483647"
                maxStringContentLength="2147483647"
                maxArrayLength="2147483647"
                maxBytesPerRead="2147483647"
                maxNameTableCharCount="2147483647" />                                                               
          
            <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
            <message clientCredentialType="UserName" algorithmSuite="Default"/>
          </security>
        </binding>
      </basicHttpBinding>





      <client>
    <endpoint address="http://100.100.100.100:11111/MyService" binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding"
              contract="MyServer.SendData" name="MyServiceEndpoint"/>
  </client>




Конфиг Сервера

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
	<system.serviceModel>
		<services>
			<service name="MYService" behaviorConfiguration="ServiceBehavior">
				<host>
					<baseAddresses>
						<add baseAddress="http://100.100.100.100:11111/MyService" />   
					</baseAddresses>
				</host>
				<endpoint address="" binding ="basicHttpBinding" contract="MyServer.SendData" />
			</service>
		</services>	
		<behaviors>
      <endpointBehaviors>
      </endpointBehaviors>			
			<serviceBehaviors>
				<behavior name="ServiceBehavior">				   
					<serviceMetadata httpGetEnabled="true" />
					<dataContractSerializer maxItemsInObjectGraph="2147483647"/>			 
				</behavior>
			</serviceBehaviors>
		</behaviors>

		<bindings>
			<basicHttpBinding>
				<binding name="Mybinding" closeTimeout="00:01:00"
                 openTimeout="01:00:00"
                 receiveTimeout="01:00:00"
                 sendTimeout="01:00:00"
                 maxBufferSize="2147483647"
                 maxBufferPoolSize="2147483647"
                 maxReceivedMessageSize= "2147483647"
                 messageEncoding="Text"
                 transferMode="Streamed">
          <readerQuotas
                maxDepth="2147483647"
                maxStringContentLength="2147483647"
                maxArrayLength="2147483647"
                maxBytesPerRead="2147483647"
                maxNameTableCharCount="2147483647" />
					<security mode="None">
						<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
						<message clientCredentialType="UserName" algorithmSuite="Default" />
					</security>
				</binding>
			</basicHttpBinding>
			
		</bindings>

	</system.serviceModel>

	<system.web>
		<membership defaultProvider="ClientAuthenticationMembershipProvider">
			<providers>
				<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 

PublicKeyToken=444444444444444" serviceUri="" />
			</providers>
		</membership>
		<roleManager defaultProvider="ClientRoleProvider" enabled="true">
			<providers>
				<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=444444444444" serviceUri="" 

cacheTimeout="86400" />
			</providers>
		</roleManager>
	</system.web>



Откровенно говоря, я не знаю что делает раздел system.web в конфиге. Может ли оно влиять.

Помогите пожалуйста понять в чем может быть проблема.
...
Рейтинг: 0 / 0
17.04.2014, 13:21
    #38617460
HowToSoap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка на больших сообщениях.
Починил переводом на Mtom.


Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<binding name="MyBasicHttpBinding"                 
		 closeTimeout="00:01:00"
                 openTimeout="01:00:00"
                 receiveTimeout="01:00:00"
                 sendTimeout="01:00:00"
                 maxBufferSize="2147483647"
                 maxBufferPoolSize="2147483647"
                 maxReceivedMessageSize= "2147483647"
                 messageEncoding="Mtom"
                 transferMode="Buffered"



Стали проходить большие сообщения.


И все же. Подскажите, в чем проблема была ? Почему со старыми настройками не проходили большие данные ?
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Ошибка на больших сообщениях. / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]