Ich freue mich heute sehr, das Projekt ist endlich online. Es ist nur so, dass die Probleme vor dem Online-Gehen ermüdend waren. . . Aber es wurde endlich gelöst. . Lassen Sie mich Ihnen hier das Problem erläutern, in der Hoffnung, Freunden in Not etwas zu helfen ~~
Projekt: DOTNET-Projekt, C#-Entwicklung, die Hauptfunktion besteht darin, über COM-Komponenten auf die Remote-Schnittstelle zuzugreifen.
Betriebsumgebung: Windows 2003 Server + IIS6.0 + .Net 1.1
Problem: COM-Komponenten und -Systeme können unter dem Betriebssystem WINDOWS2000 normal verwendet werden. Nach der Migration auf WIN2003 bleibt der Prozess jedoch hängen, wenn das Programm die Komponenten aufruft, und manchmal wird ein Fehler zurückgegeben, der darauf hinweist, dass der Server auf eine unerwartete Situation gestoßen ist ~
Ursachenanalyse: Erstens wurde die Komponente unter anderen Betriebssystemen übergeben, was darauf hinweist, dass die Registrierungsmethode der COM-Komponente und die DOTNET-Projektreferenz korrekt sind, der Fehler jedoch beim Aufrufen der Komponente auftritt Die Funktion der COM-Komponente besteht darin, die IP-Adresse und den Port zu übergeben. Um auf die Remote-Schnittstelle zuzugreifen, achten Sie auf die Arbeit einer Remote-Netzwerkverbindung. Bei der Suche nach ähnlichen Problemen im Internet geht es in den meisten Artikeln um Komponentenberechtigungen. Ich habe auch die Komponenten gemäß dem Artikel eingerichtet und die Berechtigungen von IIS-Zugriffsbenutzern usw. auf das Maximum festgelegt, aber das Ergebnis funktioniert immer noch nicht. . Kurz vor dem Zusammenbruch. .
Lösung: Nachdem das Unternehmen einige Tage lang von diesem Problem geplagt wurde, kontaktierte es den Microsoft-Kundensupport und Microsoft bot eine Möglichkeit an, die Sicherheitsberechtigungen des Anwendungspools in IIS6.0 zu überprüfen. Nach der Überprüfung gibt es in den Eigenschaften des Anwendungspools in IIS auf der Registerkarte „Identität“ ein Standardsicherheitskonto „Netzwerkdienst“, nämlich „Netzwerkdienst“. Der Netzwerkdienst ist ein integriertes Konto in Windows Server 2003. Es gehört zur Gruppe IIS_WPG. Mitglieder von IIS_WPG verfügen über entsprechende NTFS-Berechtigungen und erforderliche Benutzerberechtigungen. Laut dem Artikel auf der Microsoft-Website verfügt das Netzwerkdienstkonto über Prozesse, die als fungieren IIS 6-Workerprozesse verfügen über ausreichende Berechtigungen, um das Netzwerk zu identifizieren und darauf zuzugreifen. Aber ich weiß nicht warum, die NetWork-Service-Berechtigungen reichen hier nicht aus, sodass die Komponente nicht aufgerufen werden kann, um auf die Remote-Schnittstelle zuzugreifen. Die Lösung besteht darin, das IIS_WPG-Konto auf „Lesen und Ausführen“ zu setzen, Ordnerverzeichnisse aufzulisten und zu lesen. Für den Netzwerkdienst sind Vollzugriffsberechtigungen erforderlich. Gemäß der oben genannten Methode habe ich den Netzwerkdienst der Administratorgruppe ^_|| zugewiesen, IIS neu gestartet und dann das Programm in Ordnung ausgeführt, und die Komponente wurde normal aufgerufen ~~
Wenn also Freunde darauf stoßen, dass COM-Komponenten nicht aufgerufen werden können Bei erneuter Verwendung sollten Sie die Anwendung der Berechtigungen des Programmpools in Betracht ziehen ~~ Weitere Informationen
finden Sie in den folgenden Artikeln: http://www.microsoft.com/china/technet/community/columns/insider/iisi1203.mspx
http://flyskywlh.cnblogs.com /archive/2006/07/07 /445508.html