J'essaie de faire appel à une demande de service Web à un site Web tiers Site Web Qui est un peu peu fiable. Existe-t-il un moyen de définir un délai d'attente sur une demande de ce site? Quelque chose comme ce pseudo code:
5 Réponses :
Peut-être que vous devriez aller avec propriété p> p>
De nombreuses classes dans le cadre .NET impliquant tout type de réseau de réseau incluent une propriété de délai d'expiration. Par exemple, il existe une telle propriété sur la classe WebRequest (System.net) P>
WebClient ne prend pas naturellement les délais d'attente personnalisés. Mais vous pouvez facilement construire une classe dérivée avec des délais d'attente personnalisés:
Vous pouvez utiliser Timeout Propriété : mise à jour: p> Pour répondre à la question dans la section Commentaire sur
xelement.load (URI) code> Vous pouvez faire le Suivant: p>
Je vais essayer cela et vous faire savoir comment ça fonctionne. Puis-je mettre tout cela dans une déclaration de capture d'essai afin que je puisse retourner un message d'erreur s'il est terminé?
Bien entendu, l'essai / attraper est ce dont vous avez besoin pour gérer l'exception et retourner un message approprié.
Cela peut être pour une autre question, mais savez-vous comment je peux aussi l'utiliser avec xelement.load (URI)?
@victor_foster Voir comme c'est marqué ASP.NET-MVC. Bien que vous puissiez définir le délai d'attente sur le WebRequest IIS pourrait toujours réduire la demande qui a initié l'action de. N'oubliez pas de définir le délai d'attente sur la demande HTTP actuelle (qui a invoqué votre action) aussi. En mode de débogage, le délai d'attente par défaut est une année mais dans une version de déverrouillage, IIS sera par défaut à 90 secondes.
@Darin Dimitrov, merci je vais l'essayer. @Martijn Laarman, peut me donner un lien sur la façon de mettre à jour cela aussi? 90 secondes peut être pour cette application particulière, mais il serait agréable de pouvoir la définir au besoin.
@Darindimitrov Je mesure une même page à l'aide de HTMLagILity dans une version de Veach, signifie HTMLDOCument.LoLLoad (URL) est appelé dans une URL différente à chaque fois, mais il jette une exception du délai d'attente sur cette ligne, je veux juste minimiser le délai d'attente, je veux juste minimiser le délai d'attente, i ont essayé de minimiser la durée du délai d'attente à l'aide de Demande.Timeout = 5000, c'est-à-dire après 5 secondes, mais il est timming en 3 minutes, peu importe la valeur que j'ai définie.
Vous pouvez rechercher une exception Web de serveur de serveur, puis utilisez SignalR pour envoyer activement le messsage du délai d'attente Retour aux clients: Voir plus Comment configurer Signalr pour asp.net ici P> P> P> P> P>