Bonjour à tous,

J'aurais voulu savoir s'il serait possible que quelqu'un me donne un coup de main . J'explique mon problème:

J'ai un service Windows en WCF qui expose son interface pour le web, jusque là rien de bien compliqué. Ce service étant destiné à envoyer des objets qui ont une proprièté Image, j'ai règlé la configuration du service de façon à ce que celui-ci puisse envoyer des messages de taille élevée.

Le problème survient au moment d'utiliser ce service. J'ai essayé de tester mon service en créant un projet console simple en C# qui a en "Service reference" mon service. L'import ce fait bien, j'ai bien un client et accès aux méthodes, cependant, la configuration qui est crééee dans l'App.config n'est pas la bonne et mon test ne reçoit donc pas les images .

Voici la configuration de mon service windows
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
 
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<system.serviceModel>
		<behaviors>
			<serviceBehaviors>
			<behavior name="Mon Service Behavior">
			<serviceMetadata httpGetEnabled="true"httpGetUrl="http://localhost:8096/WebService/MonService/mex" />
			</behavior>
			</serviceBehaviors>
		</behaviors>
		<services>
			<service behaviorConfiguration="Mon Service Behavior" 
				name="WebService.Services.MonService">
				<endpoint binding="basicHttpBinding"
					bindingConfiguration="LongWebMessageBindingConfiguration"
					contract="WebService.Services.IMonService" />
				<host>
					<baseAddresses>
						<add baseAddress="http://localhost:8095/WebService/MonService/" />
					</baseAddresses>
				</host>
			</service>
		</services>
		<bindings>
			<basicHttpBinding>
				<binding name="LongWebMessageBindingConfiguration"
					hostNameComparisonMode="StrongWildcard"
					receiveTimeout="00:10:00"
					sendTimeout="00:10:00"
					openTimeout="00:10:00"
					closeTimeout="00:10:00"
					maxReceivedMessageSize="2147483647"
					maxBufferSize="2147483647"
					maxBufferPoolSize="2147483647"
					transferMode="Buffered"
					messageEncoding="Text"
					textEncoding="utf-8"
					bypassProxyOnLocal="false"
					useDefaultWebProxy="true" >
					<security mode="None" />
				</binding>
			</basicHttpBinding>
		</bindings>
	</system.serviceModel>
</configuration>
Et voici la onfiguration coté client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
 
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_MonService" 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:8095/WebService/MonService/"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_MonService"
                contract="MonServiceReference.MonService"
                name="BasicHttpBinding_MonService" />
		</client>
    </system.serviceModel>
</configuration>
^
Dans le cas d'un client qui essayerait de se connecter en C# à mon service, il suffira que je lui dise de modifier les valeurs de maxArrayLength, maxReceivedMessageSize et maxBufferSize, mais je ne sais pas comment ça se passerait dans le cas où ce serait une appli Java qui attaque mon service .

Y a t il un moyen pour que le binding coté client soit le même que celui coté serveur?

Merci de toute l'aide que vous pourrez m'apporter