Je suis très heureux aujourd'hui, le projet est enfin en ligne. C'est juste que les problèmes rencontrés avant de se connecter étaient épuisants. . . Mais le problème a finalement été résolu. . Laissez-moi vous expliquer le problème ici, dans l'espoir d'apporter de l'aide à des amis dans le besoin ~~
Projet : projet DOTNET, développement C#, la fonction principale est d'accéder à l'interface distante via des composants COM.
Environnement d'exploitation : Windows 2003 Server + IIS6.0 + .Net 1.1
Problème : les composants et systèmes COM peuvent être utilisés normalement sous le système d'exploitation WINDOWS2000, mais après la migration vers WIN2003, le processus reste bloqué lorsque le programme appelle les composants, et parfois une erreur indiquant que le serveur a rencontré une situation inattendue sera renvoyée ~
Analyse des causes : tout d'abord, le composant est passé sous d'autres systèmes d'exploitation, indiquant qu'il ne devrait y avoir aucun problème avec le composant ; les méthodes d'enregistrement des composants COM et la référence du projet DOTNET sont correctes, mais l'erreur se produit lors de l'étape d'appel du composant. , et la fonction du composant COM est de transmettre l'adresse IP et le port. Pour accéder à l'interface distante, faites attention au travail d'une connexion réseau distante. En recherchant des problèmes similaires sur Internet, la plupart des articles concernent les autorisations des composants. J'ai également configuré les composants conformément à l'article, et les autorisations des utilisateurs d'accès IIS, etc. sont accordées au maximum, mais le résultat ne fonctionne toujours pas. . Sur le point de s'effondrer. .
Solution : Après avoir été tourmentée par ce problème pendant quelques jours, la société a contacté le support client de Microsoft et Microsoft a proposé de vérifier les autorisations de sécurité du pool d'applications dans IIS6.0. Après vérification, dans les propriétés du pool d'applications dans IIS, il existe un compte de sécurité par défaut « Service réseau » sous l'onglet « Identité », qui est NetWork Service. Le service réseau est un compte intégré à Windows Server 2003. Il appartient au groupe IIS_WPG. Les membres de IIS_WPG disposent des autorisations NTFS appropriées et des autorisations utilisateur nécessaires. Selon l'article sur le site Web de Microsoft, le compte du service réseau dispose de processus qui agissent comme. Processus de travail IIS 6 Autorisations suffisantes pour identifier et accéder au réseau. Mais je ne sais pas pourquoi, les autorisations du service NetWork ici ne sont pas suffisantes, donc le composant ne peut pas être appelé pour accéder à l'interface distante. La solution consiste à définir le compte IIS_WPG pour lire et exécuter, répertorier les répertoires de dossiers, lire et NETWORK SERVICE nécessite des autorisations de contrôle total. Selon la méthode ci-dessus, j'ai attribué le service NetWork au groupe Administrateur ^_||, j'ai redémarré IIS, puis j'ai exécuté le programme OK, et le composant a été appelé normalement ~~
Donc, si des amis constatent que l'appel des composants COM ne peut pas être effectué. utilisé à nouveau, pensez à appliquer les autorisations du pool de programmes ~~
Reportez-vous aux articles suivants : http://www.microsoft.com/china/technet/community/columns/insider/iisi1203.mspx
http://flyskywlh.cnblogs.com /archive/2006/07/07 /445508.html