2016-05-02 2 views
0

J'ai une page webmestres asp.net qui fait des appels à pick/d3 via mv.net. J'ai connecté les performances côté serveur en entourant le mv.net appelle avec le code de synchronisation, par exemple: logTimeElapsed() getDataFromPick() 'gets 5 rows of test data logTimeElapsed()MV.NET appelle beaucoup plus lentement lorsque le site Web est accessible à distance ou localement

Quand j'appelle cette page du serveur iis d'hébergement, je reçois des temps de réponse rapides tels que: newAC elapsed: 2.9297 total: 2.9297 Dim Acct As mvAccount = New mvAccount("...") row 1 elapsed: 20.5078 total: 23.4375 Acct.FileOpen("...").ReadV(strID, 17) row 2 elapsed: 9.7657 total: 33.2032 same as above row 3 elapsed: 11.7187 total: 44.9219 same as above row 4 elapsed: 11.7188 total: 56.6407 same as above row 5 elapsed: 9.7656 total: 66.4063 same as above Logout elapsed: 1.9531 total: 68.3594 Acct.Logout()

Cependant, quand j'appelle cette même page d'un autre emplacement sur le réseau ou sur le Web, je reçois des temps de réponse qui sont environ 7 fois plus: new acct elapsed: 0 total: 0 Dim Acct As mvAccount = New mvAccount("...") row 1 elapsed: 156.25 total: 156.25 Acct.FileOpen("...").ReadV(strID, 17) row 2 elapsed: 78.125 total: 234.375 same as above row 3 elapsed: 78.125 total: 312.5 same as above row 4 elapsed: 78.125 total: 390.625 same as above row 5 elapsed: 78.125 total: 468.75 same as above Logout elapsed: 0 total: 468.75 Acct.Logout()

A partir des résultats ci-dessus, il ressemble à:

Accès local:

mv.net prend quelques millisecondes pour créer et se déconnecter d'un compte et chaque appel FileOpen est rapide.

Lorsque l'accès à distance:

mv.net prend 0 le temps de créer et d'un compte déconnexion (réutilisation d'un compte partagé?), Mais chaque appel FileOpen est lent.

Comment puis-je adapter la performance à distance aux performances locales? Y a-t-il des changements à apporter à la configuration de mv.net ou d'iis?
Y a-t-il quelque chose qui se passe avec les permissions des utilisateurs qui est différent quand iis est appelé localement ou à distance?

Toute aide appréciée

+0

Side comment: Je sais que vous essayez de résoudre un problème spécifique ici, donc peut-être que c'est hors de la ligne: Multiple 'Acct.FileOpen (" ... "). ReadV()' opérations créent plus de travail sur le serveur ainsi que de rendre la connexion beaucoup plus bavarde (augmentation du temps de transaction). Je recommanderais un seul FileOpen suivi d'une ou plusieurs opérations de lecture sur cet objet. Vous pouvez récupérer des attributs spécifiques dans un seul mvItem lu en utilisant des noms ou des références atb, donc vous pouvez obtenir ce que vous voulez dans une seule instruction plutôt que plusieurs, et sans mettre l'élément entier sur le fil de D3 quand vous n'en avez pas besoin. HTH – TonyG

Répondre

1

Je pense profil de votre compte est configuré pour une terminaison assez rapide. Ainsi, lorsque vous testez localement, vous le touchez plusieurs fois et ça a l'air rapide. Ensuite, vous vous équipez pour utiliser une connexion à distance, pendant ce temps la connexion à D3 se termine. Ensuite, vous établissez la connexion et vous devez vous reconnecter à D3, ce qui entraîne une baisse des performances.

Ma suggestion consiste à définir le profil de compte pour ne pas se terminer à la déconnexion. Donc, toutes les connexions qui le frappent à ce moment-là utiliseront la même session persistante. Votre connexion locale se termine et lorsque la connexion à distance arrive, la session de connexion avec D3 sera toujours active et vous ne ressentirez pas la peine d'une nouvelle connexion. Si ce n'est pas ça, faites le moi savoir et nous y arriverons. :)

+0

Je vais me pencher là-dessus maintenant. Pour plus d'informations, voici une réponse qu'un collègue est revenu de BlueFinity: _Que d'autres personnes ont fait dans des circonstances comme celle-ci est d'utiliser des renifleurs de paquets (Wireshark, par exemple) sur le réseau pour diagnostiquer le problème, car il n'est pas mv.NET. Cela a à voir avec un problème de couche réseau qui donne des performances médiocres, ce qui affecte les performances de mv.NET. _ –

+0

Merci Tony, Nous avons regardé le profil du compte et il est configuré pour 'pas de fin automatique' et 'pas d'auto libérer'. Lorsque je compare la journalisation du moniteur de connexion mv.net sur la machine iis lorsque le site est appelé à distance et localement, les mêmes informations sont consignées et le même ID client (NomMachine: W3Wp.exe: 6112). –

+1

Il semble que Bluefinity ne comprend pas encore les détails. Pour être clair, je voudrais aussi récapituler ma compréhension: Vous avez un gestionnaire de session avec une seule connexion (?) Persistante Telnet (MVSP?) À D3. Je devine que c'est sur la même boîte en cours d'exécution IIS (?). Vous utilisez un navigateur localhost, en cliquant sur ce serveur IIS et en obtenant un timing. Vous frappez ce même serveur, ASPX, DLL, web.config d'un autre PC ou de l'extérieur du réseau et vous obtenez un timing différent. Vous pouvez le faire alternativement et voir exactement les mêmes résultats étranges. Tout bon? Défi intéressant. Je garderai un oeil ici pour votre réponse. – TonyG