Ich arbeite mit Windows 7, VS2010, SqlServer 2008.
Meine Anwendung nimmt Daten von einer Drittanbieter-DLL (die Daten von einem anderen Prozess nimmt, der im Hintergrund ausgeführt werden muss) und verarbeitet die Daten und sendet sie über einen WCF-Dienst an das Frontend.
Die Anwendung ist fertig und tut, was sie tun soll. Wenn ich sie nun verteilen und im IIS ausführen möchte, stehe ich vor einem Problem. Ich stehe vor einem seltsamen Problem. Die Anwendung erhält die Daten von einer DLL, wenn ich sie im IIS ausführe, schlägt sie fehl und gibt einen Fehler beim Verbinden mit der DLL.
Abrufen der COM-Klassenfabrik für Komponente mit CLSID {FCEC6861-5866-4F9E9A09-7CC868C30A8B} schlug aufgrund des folgenden Fehler: 80070005 Zugriff wird verweigert. (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED)).
Nach einigen Nachforschungen fand ich heraus, dass ich im Komponentendienst und in der DCOM-Konfiguration die Sicherheit der dll auf "Jeder" änderte. Der Fehler hörte auf.
Aber jetzt bekomme ich den Fehler nicht, aber ich bekomme die Daten nicht, wenn die Software, die die Daten liefert, geschlossen wird. Aber Arbeit ok mit meinem ASP.net Entwicklungsserver.
Außerdem habe ich festgestellt, dass ich, wenn ich Visual Studio im Administratormodus ausführe, auch die Datensoftware von Drittanbietern im Administratormodus ausführen muss.
Die dll-Referenz wird nicht automatisch in den bin-Ordner kopiert, sondern in den obj-Ordner und ich habe sie manuell kopiert, aber es funktioniert nicht.