Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problema Wcf tra domini diversi, autenticazione con certificati e uso di transazioni

6 views
Skip to first unread message

Marco Fontana

unread,
Feb 6, 2009, 5:39:12 AM2/6/09
to
Ave a tutti,
ho un problema abbastanza grave con un WCF che implementa l'uso delle
transazioni e l'autenticazione con messaggi... per la fase di test ho creato
l'autorità di certificazione e i certificati con makecert, configurato il
dtc per la gestione delle transazioni atomiche e apportato la configurazione
sui files di configurazione sia lato client che server...mi viene lanciata
la seguente eccezione:
"The flowed transaction could not be unmarshaled. The following exception
occurred: The WS-AtomicTransaction protocol service could not unmarshal the
flowed transaction. The following exception occured: A fault reply with code
InvalidState was received. The fault reason follows: The message was invalid
for the current state of the activity"

Vi posto anche le configurazioni di server e client:
Server

<system.serviceModel>
<diagnostics wmiProviderEnabled="true" performanceCounters="All">
<messageLogging logMalformedMessages="true"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true" />
</diagnostics>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"
httpsGetEnabled="true" />
<serviceCredentials>
<serviceCertificate findValue="ServerSide"
x509FindType="FindBySubjectName"
storeLocation="LocalMachine"/>
<clientCertificate>
<authentication revocationMode="NoCheck"/>
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<wsHttpBinding>
<binding name="wsHttpEndpointBinding" transactionFlow="true">
<security mode="Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="ServiceBehavior"
name="TrackerService.RefusalService">
<endpoint binding="wsHttpBinding"
bindingConfiguration="wsHttpEndpointBinding"
name="wsHttpEndpoint" contract="TrackerService.IRefusalService" />
<endpoint address="mex" binding="mexHttpBinding" name="Mex"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>

Client:

<system.serviceModel>
<diagnostics wmiProviderEnabled="true">
<messageLogging logMalformedMessages="true"
logMessagesAtTransportLevel="true" />
</diagnostics>
<behaviors>
<endpointBehaviors>
<behavior name="ClientBehavior">
<clientCredentials>
<clientCertificate findValue="clientside"
x509FindType="FindBySubjectName"
storeLocation="LocalMachine"/>
<serviceCertificate>
<authentication revocationMode="NoCheck"/>
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<wsHttpBinding>
<binding name="wsHttpEndpoint" closeTimeout="00:01:00"
openTimeout="00:05:00"
receiveTimeout="00:05:00" sendTimeout="00:05:00"
bypassProxyOnLocal="false"
transactionFlow="true" 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:05:00"
enabled="false" />
<security mode="Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint
address="http://xxx.xxx.xxx.xxx:8080/RefusalService/RefusalService.svc"
behaviorConfiguration="ClientBehavior" binding="wsHttpBinding"
bindingConfiguration="wsHttpEndpoint"
contract="RefusalServiceReference.RefusalService"
name="wsHttpEndpoint">
<identity>
<dns value="Serverside"/>
</identity>
</endpoint>
</client>
</system.serviceModel>

Qualcuno sa darmi una dritta? Ringrazio tutti anticipatamente per il tempo
dedicatomi!
Cordialmente
Marco

0 new messages