Question

Mes assemblées qui enveloppent un travail de DLL tiers fin dans mon windows essai app harnais, et ils aussi excellent travail dans un service Web lorsque donné naissance en mode débogage (VS 2008 développement Visual studio Server)! Cependant, l'application se bloque toujours lors de l'exécution sur le serveur Web IIS 7 local. Voici le détail de l'accident du journal des événements lors de l'exécution sur le serveur IIS local:

  

Défaillante application w3wp.exe version   7.0.6001.18000, horodatage 0x47919413, module défaillant ntdll.dll version   6.0.6001.18000, horodatage 0x4791a783, code d'exception 0xc0000374, faute   décalage 0x000aada3, id de processus 0x990,   demande le temps de démarrage   0x01c9b4133281d5d0.

Discussion: J'ai écrit une enveloppe autour d'une dll .NET à partir d'un tiers (LinkPointTransaction.dll de FirstData), et je l'ai écrit d'autres ensembles qui font référence à cet emballage. Comme le code est en cours d'exécution, un appel à la LinkPointTransaction.LinkPointTxn.Send() tiers envoie la transaction avec succès à FirstData sur Internet, mais mon application se bloque W3WP.exe quelque part pendant cet appel, avant qu'elle ne touche la ligne suivante. Il ne jette pas une exception gérée que je peux voir; il se bloque juste. Fonctionne très bien partout sur ma machine, sauf dans IIS7.

Je suis en cours d'exécution 64 bits Vista Home Premium (IIS7), mais je applications 32bit permis dans IIS, a créé un AppPool séparé juste pour ce service web, et ont forcé tous mes assemblées à x86. J'ai essayé de courir Pool App sous mon compte utilisateur avec des privilèges d'administrateur et non comme le service de réseau. UAC est désactivé. J'ai essayé modes intégrés et classiques. J'ai explicitement ouvert le port TCP / IP dans mon pare-feu local que le LinkPointTransaction.dll utilise pour communiquer avec FirstData. Je même ai fermé mon pare-feu éteint (derrière un routeur).

Avec l'une de ces solutions de contournement que je la liste, il toujours travaille dans une application Windows et aussi dans un service Web dans le développement VS Server, mais jamais fonctionne sur le serveur IIS local.

Le AppPool pour le site Web IIS est en mode classique. (En réponse à Gidon)

Était-ce utile?

La solution

Je ne pense pas que ce soit une question de programmation plus, donc je suis « répondre » il.

En utilisant WinDbg, je l'ai suivi à la trace jusqu'à la dll fournie par le vendeur. Lorsque les application se bloque, il ressemble à un problème avec la façon dont le dll est dé-allocation de mémoire. La pile d'appel montre une mémoire opération libre dans la dll, puis une opération « libre tas » dans le noyau, puis un « tas libre » opération ntdll, et un « échec de tas de rapports » après (puis RtlReportCriticalFailure) qui se déchire sur la tout.

Je ne comprends toujours pas pourquoi cela fonctionne dans un environnement Windows Forms application et dans IIS 6, mais travaille pas dans IIS 7. Cependant, cela est devenu plus d'une question de plate-forme d'une question « de programmation ». Par ailleurs, il est probablement la responsabilité du vendeur de le réparer plutôt que le mien de travailler autour d'elle.

UPDATE : dans les deux jours suivant le dépôt du billet de support technique avec le vendeur, ils ont fourni un ensemble actualisé des DLL d'intégration qui utilisent un objet COM que vous enregistrez avec regsvr32, et il fonctionne dans IIS7 64 bits si vous vous inscrivez dans le répertoire WOW64. YEA POUR LA PREMIÈRE TECHNIQUE SUPPORT!

Autres conseils

J'ai demandé d'abord des données sur les DLL et être capable de l'exécuter sur IIS7 / .NET 4 / Win 2008 64 bits. Ce fut leur réponse:

  

Nous vous remercions de votre demande récente concernant First Data Global Gateway. L'API Webservice est notre solution actuelle pour les machines 64 bits fonctionnant sur IIS 7, car aucun des fichiers dll (Linkpointtransaction.dll, LPICOM_6_.dll) sera mis à jour pour fonctionner avec le serveur 64 bits. API Webservice, il faudra installer le certificat client et envoyer la transaction via requête SOAP. Des informations supplémentaires sur l'API Webservice se trouve à http : //www.firstdata.com/downloads/marketing-merchant/FDGG-Web-Service-API-v4.0.pdf .

     

Si vous avez besoin de plus amples précisions ou des questions, s'il vous plaît contacter notre service d'assistance via le numéro de téléphone ci-dessous. S'il vous plaît être conseillé le support de l'API Horaires d'ouverture est 09h00-à-18h00 HNE du lundi au vendredi.

Cela devrait aider les autres à la recherche d'informations similaires à l'avenir.

Comment est le site configuré en IIS7? Si elle est en cours d'exécution en mode intégré passer en mode classique. Voir Les modifications récentes pour les applications ASP.NET 2.0 en cours d'exécution en mode intégré sur IIS 7.0

J'ai eu un problème similaire, et après jouer avec elle pendant plusieurs jours, je me suis rendu compte que si je lance le même code à plusieurs reprises dans MSTest, parfois, il échoue et se bloque complètement le processus de test, d'autres parfois, il fonctionne très bien.

La chose vraiment étrange est que cela arrive le plus souvent lors du débogage d'un MSTest, mais, si je clique dans la méthode de test, puis sur la principale ButtonBar cliquez sur « des tests de débogage dans le contexte actuel », alors il ne parvient presque toujours. Si je place exécuter le test en cliquant sur « debug » dans la fenêtre « Résultats du test », puis il passe presque toujours correctement.

Il a également presque toujours fonctionne correctement si je ne fonctionne pas en mode de débogage, mais ne fonctionne toujours parfois ne. J'ai même Gona autant que copier / pastign exactement le même code entre 2 différents projets dans 2 différentes instances de VisualStudio 2010, et dans l'un d'entre eux le code fonctionne correctement, et dans un autre, il échouera.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top