Changement de la WCF délai d'expiration par défaut
J'ai ici un WCF Duplex de Service, le requierement est que le Rappel au client devrait avoir un délai d'attente de 10 secondes, à cet effet, de mon site web.fichier de configuration du Service ressemble à ceci:
<bindings>
<basicHttpBinding>
<binding name="simulatorEndpoint" closeTimeout="00:00:10" openTimeout="00:00:10"
receiveTimeout="00:00:10" sendTimeout="00:00:10" 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>
<wsDualHttpBinding>
<binding name="wsdualEndpoint" closeTimeout="00:00:10" openTimeout="00:00:10"
receiveTimeout="00:00:10" sendTimeout="00:00:10" bypassProxyOnLocal="false"
transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536" clientBaseAddress="http://localhost:1235"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:00:10" />
<security mode="Message">
<message clientCredentialType="Windows" negotiateServiceCredential="true"
algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
sur le côté client les liaisons dans l'application.fichier de configuration sont les mêmes avec les mêmes valeurs de délai d'attente.
Les effets sont maintenant que si le client envoie une requête au serveur le Délai d'attente est 10seconds. Mais d'un autre côté, si le service envoie un rappel au client le délai d'attente est de 1 minute. C'est très étrange...de toute évidence, le délai d'attente est correctement fixé sur le côté client..mais pas sur le service...Comment puis-je modifier le délai d'attente sur le service?
PS: je suis à l'aide de Visual Studio 2010 et le mode de débogage avec la approbiate ASP.NET Serveur de Développement 10.0.0.0
OriginalL'auteur Hannes S | 2010-02-10
Vous devez vous connecter pour publier un commentaire.
Bref résumé de la liaison de délais d'attente...
[edit: certains le code]
Aussi, essayez d'ajouter ceci à votre service config
puis ajouter le comportement de votre point de terminaison
Cela semble avoir été repris, mot pour mot, à partir de msdn.microsoft.com/en-us/library/hh924831(v=vs. 110).aspx. Lorsque vous copier mot à mot à partir d'une source en ligne, vous DEVEZ citer la source. J'ai fixé pour vous.
OriginalL'auteur Neil
Ok j'ai trouvé l'erreur...
j'ai fait la bindingConfiguration droit avec
mais l'idée était que c'était ma déclaration de l'ordinateur d'extrémité:
parce que mon hypothèse était qu'il allait chercher l'défini ci-dessus liaison de configurations et de les utiliser pour mon point de terminaison, mais que c'était faux, j'ai du ajouter bindingConfiguration="LE NOM de LA CONFIGURATION" pour le point de terminaison-déclaration.
À cet effet, juste pour votre information mon travail de configuration ressemble à ceci:
et le bon point de terminaison de déclaration est:
OriginalL'auteur Hannes S