öffnen von excel-Fehler: System.- Laufzeit.InteropServices.COMException (0x80080005): Abrufen des COM-Klassenfactory für die Komponente mit CLSID
Ich habe ein C# .net web-app. Ich möchte einen Benutzer auf eine Schaltfläche auf einer Webseite, den server zu öffnen, eine excel-Tabelle und schreiben von Daten, und der Benutzer, um das Dokument zu speichern. Dies funktioniert lokal mit Visual Studio 2010 und Office 2010. Auf meinem server, jedoch bekomme ich diesen Fehler:
System.- Laufzeit.InteropServices.COMException (0x80080005): Abrufen des COM-Klassenfactory für die Komponente mit CLSID {00024500-0000-0000-C000-000000000046} konnte aufgrund des folgenden Fehler: 80080005-Server-Ausführung fehlgeschlagen (Ausnahme von HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
Habe ich recherchiert und gefunden, die eine Tonne von Antworten, die besagt öffnen dcomconfig und fügen Sie den Benutzer mit Berechtigungen für die Microsoft Excel-Anwendung. Meine Website passthrough Sicherheit so fügte ich mich; ich bin ein admin auf dem server, so habe ich dafür gesorgt, Admins Zugang hatte; ich habe auch die App-Pool Standard-Netzwerk-Service; auch ASP.NET Maschine-Konto; und, nur für den Fall, Hinzugefügt, die das Konto nutzt die app beim verbinden mit der Datenbank. Ich bekomme immer noch die genau gleichen Fehler.
Mein server ist 64 bit, Office 2007, IIS 7.
Mein code ist:
{
try
{
Excel.Application xXL = null;
Excel.Workbook xWB = null;
Excel.Worksheet xSheet = null;
xXL = new Excel.Application();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
Es ist ein bisschen unklar ist: Woher kommt diese .NET-code ausführen? Als Teil einer ASP.NET web-Seite? Auf der server-Seite? Ist Excel auf dem server installiert? Wissen Sie, dass die Office-Automatisierung nicht unterstützt server-side-code?
Auch, sind Sie sicher, dass Sie nicht mischen die server-side und client-side-Modelle in Ihrer Anwendung? Wenn der code öffnet sich Excel auf Ihrem server als ein Benutzer, die Zugriff auf diese Webseite werden nicht sehen, es ist nicht auf seinem Rechner.
Sie müssen sicherstellen, dass der Ziel-server installiert / richtige version des Assembly ' s auch tun, kopieren Sie die lokalen Baugruppe oder installiert haben, die in der
GAC
auf dem Ziel-ServerInformationsquelleAutor user2044518 | 2013-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Office-Automatisierung - der Gebrauch von Excel.Anwendung und Excel.Workbook-Objekte - wird nicht empfohlen, und von Microsoft nicht unterstützt. Aussehen:
Dies bedeutet, dass selbst wenn yo Sortieren Sie Ihre server-side/client-Seite Probleme, Sie sind immer noch mit dem Feuer spielen, da einige Szenarien könnte funktionieren, andere nicht, und andere, die manchmal arbeiten und manchmal dazu führen, Ihren Prozess zu hängen, da Excel versucht, öffnet sich ein pop-up-Benachrichtigung, wenn es nicht einen Konsolen-Benutzer auf dem server angemeldet ist. Vertrauen Sie mir, tun Sie es nicht.
Den link, den ich zur Verfügung gestellt listet mehrere alternativen zu dem, was Sie versuchen zu tun, aber vorausgesetzt, Sie planen, auf den Aufbau relativ einfache Excel-sheets für Ihre Benutzer sind, sind Sie besser dran, nur das erstellen einer CSV-Datei und senden diese zurück an den Benutzer mit dem entsprechenden header (so etwas wie
Response.ContentType="application/vnd.ms-excel"
), so dass die zurückgegebenen Daten geöffnet werden, die von Excel standardmäßig.Sie können sehen, mehr Antworten auf diese Frage hier.
InformationsquelleAutor Avner Shahar-Kashtan
Drücken Sie OK und das Wars. kann ich meine Bewerbung jetzt.
InformationsquelleAutor Viral Prajapati