2013-06-19 5 views
0

je veux activer (SessionMode = SessionMode.Required) dans mon service, donc quand je l'ai ensuite permis de tester le service en utilisant le test WCF client, il soulève l'erreur suivante:WCF session Erreur de configuration

Le message n'a pas pu en traitement. Cela est probablement dû au fait que l'action 'http://schemas.xmlsoap.org/ws/2004/09/transfer/Get' est incorrecte ou parce que le message contient un jeton de contexte de sécurité non valide ou expiré ou parce qu'il existe une incompatibilité entre les liaisons. Le jeton de contexte de sécurité ne serait pas valide si le service interrompait le canal en raison de l'inactivité. Pour empêcher le service de l'interruption sessions inactives augmenter prématurément le délai d'attente de réception sur binding.HTTP du point de terminaison de service GET erreur

URI: http://localhost:7645/PublisherService.svc  

Le document HTML ne contient pas d'informations de découverte de service Web.

<system.serviceModel> 

    <bindings> 
     <basicHttpBinding> 
      <binding name="myBasicBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" closeTimeout="00:01:00" openTimeout="00:01:00" sendTimeout="00:01:00" receiveTimeout="00:01:00"> 
       <readerQuotas maxDepth="128" maxStringContentLength="8388608" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="2147483647"/> 
      </binding> 

     </basicHttpBinding> 

    <!--enable WSHTTPBinding session--> 
    <wsHttpBinding> 
    <binding name="bindingAction" transactionFlow="false" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" sendTimeout="00:01:00" receiveTimeout="00:01:00" closeTimeout="00:01:00" openTimeout="00:01:00"> 
     <readerQuotas maxDepth="128" maxStringContentLength="8388608" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="2147483647"/> 
     <reliableSession enabled="true"/> 
     <security mode="Transport"> 
     <message establishSecurityContext="false" clientCredentialType="IssuedToken"/> 
     </security> 
    </binding> 
    </wsHttpBinding> 

</bindings> 

<protocolMapping> 
    <add scheme="http" binding="wsHttpBinding"/> 
</protocolMapping> 
<!-- \\\\\\\\\\\\\\\\\\\\\\\\\\\ --> 
<services> 
    <service name="AllChatService.PublisherService" behaviorConfiguration="metadataSupport">  
    <host> 
     <baseAddresses> 
     <add baseAddress ="http://localhost:7645/"/> 
     </baseAddresses> 
    </host> 
    <endpoint contract="AllChatService.PublisherService" binding="wsHttpBinding" address=""/> 
    <!--Enable Meta Data Publishing--> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 

<behaviors> 
    <serviceBehaviors> 
    <behavior name="metadataSupport"> 
     <serviceDebug includeExceptionDetailInFaults="False" /> 

    <!--Enable WSDL Data Binding--> 
     <serviceMetadata httpGetEnabled="true" httpGetUrl=""/> 
    </behavior> 
    </serviceBehaviors> 


    </behaviors> 

<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> 
</system.serviceModel> 




[ServiceBehaviorAttribute(InstanceContextMode = InstanceContextMode.PerCall)] 
public class PublisherService : IPublisher 
{ 
} 

[ServiceContract(SessionMode = SessionMode.Required)] 
public interface IPublisher 
{ 
} 

Donc, quelqu'un peut m'aider à résoudre ce problème.

Répondre

0

enlever la ligne

<security mode="Transport"> 

de votre fichier web.config. parce que Transport semble exiger HTTPS pour crypter les informations d'identification.

+0

mais je n'ai pas besoin de crypter les informations d'identification, mais je veux exécuter le service. – user2431952

+0

alors supprimez cette ligne de code –

+0

je l'avais essayé, pas de profit – user2431952