Bonjour

J'ai un webservice duplex/callback et utilisant donc WSDualHttpBinding, et hébergé sur IIS 7, et une application cliente. Tout se passe bien sur la même machine, mais si le client est sur une autre, j'ai l'exception suivante.

System.ServiceModel.Security.SecurityNegotiationException: L'appelant n'a pas été authentifié par le service. ---> System.ServiceModel.FaultException: The request for security token could not be satisfied because authentication failed
Je n'ai pas besoin de sécurités particulières, les webservices vont fonctionner sur un réseau interne. Il n'y a pas de domaine, pas besoin d'authentification.
J'utilise le framework 4.0. Le proxy client a été généré avec Visual Studio 2010.

J'ai bien évidemment googlé un peu, j'ai essayé plusieurs choses comme Security=None, regler security mode et transport mode dans la section wsDualHttpBinding, mais rien n'y fait.

En vous remerciant d'avance pour votre aide.

Voici mes fichiers de configuration :

web.config

Code xml : 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
  <system.serviceModel>
	<services>
		<service name="PlatonNET.WebServices.WebServicesCallback">
			<endpoint address="" binding="wsDualHttpBinding" contract="PlatonNET.WebServices.IWebServicesCallback">
				<identity>
					<dns value="localhost" />
				</identity>
			</endpoint>
			<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
			<host>
				<baseAddresses>
					<add baseAddress="http://localhost:8732/Design_Time_Addresses/PlatonNET.WebServicesCallback/" />
				</baseAddresses>
			</host>
		</service>
	</services>
	<behaviors>
		<serviceBehaviors>
			<behavior>
				<serviceMetadata httpGetEnabled="True"/>
				<serviceDebug includeExceptionDetailInFaults="True"/>
			</behavior>
		</serviceBehaviors>
	</behaviors>
</system.serviceModel>

client app.config

Code xml : 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
  <system.serviceModel>
	<bindings>
		<wsDualHttpBinding>
			<binding name="WSDualHttpBinding_IWebServicesCallback" closeTimeout="00:10:00"
            openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
            bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
            maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
            messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true">
				<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
              maxBytesPerRead="4096" maxNameTableCharCount="16384" />
				<reliableSession ordered="true" inactivityTimeout="00:10:00" />
				<security mode="Message">
					<message clientCredentialType="Windows" negotiateServiceCredential="true"
                algorithmSuite="Default" />
				</security>
			</binding>
		</wsDualHttpBinding>
	</bindings>
	<client>
		<endpoint address="http://192.168.1.57/platon.net/WebServicesCallback.svc/"
          binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_IWebServicesCallback"
          contract="ServiceReference2.IWebServicesCallback" name="WSDualHttpBinding_IWebServicesCallback">
			<identity>
				<dns value="localhost" />
			</identity>
		</endpoint>
	</client>
</system.serviceModel>