Nous avons une application .net remoting assis entre l'application web et la base de données. De temps en temps, nous avons un problème étrange. L'appel distant se bloque simplement et ne revient jamais. Nous avons utilisé le sniffer pour vérifier le trafic. Cela semble être le problème côté serveur. Si nous arrêtons l'application serveur, une exception réseau sera lancée immédiatement. Cependant, lorsque nous déboguons le code du serveur, il ne frappe aucun code. Il semble que la demande soit bloquée quelque part dans les piles distantes. Est-ce que quelqu'un a une expérience similaire?.NET Remoting côté serveur
Répondre
J'ai rencontré un problème similaire dans .Net remoting il y a assez longtemps, en utilisant IPC. Je ne me souviens pas de tous les détails, alors pardonnez-moi. Le problème que j'ai découvert était que mon application cliente effectuait un appel à distance à l'application serveur, ce qui prenait beaucoup de temps (minutes) pour se terminer. Après avoir connecté le client et le serveur au débogueur, et avoir intercepté toutes les exceptions lancées, j'ai découvert que l'appel distant finissait par lancer une sorte d'exception de timeout (ma mémoire veut dire que le message interne était COM) l'activité se produisait sur le canal IPC pendant la période de temporisation. Apparemment, lorsque ces connexions à distance expirent, les liens des deux côtés sont essentiellement des hommes-morts-marchant. Étrangement, je n'ai été capable de voir cette exception qu'à travers le débogueur - en mode de sortie, mon application s'est simplement accrochée comme la vôtre, sans aucune indication de pourquoi. J'ai trouvé les paramètres de Timeout à distance, et simplement éteint le Timeout (ou fait ridiculement grand, encore une fois je ne me souviens pas exactement), ce qui a résolu le problème.
Il s'avère que le système CMS que nous utilisons utilise également .NET Remoting et écrase nos paramètres de sécurité. Nous avons désactivé les paramètres de sécurité sur notre application à distance et tout fonctionne bien maintenant.