3 Stimmen

Verwendung von `InsertFile` und Speichern der Datei von der Website auf IIS

Ich versuche, eine Datei zu einem Word-Dokument hinzuzufügen

application.Selection.InsertFile(file);

Aber es verursacht die Ausnahme

COMException: The document name or path is not valid

Und dann speichern Sie es

document.SaveAs(path);

Aber dann bekomme ich die Ausnahme

The object invoked has disconnected from its clients. (Exception HRESULT: 0x80010108 (RPC_E_DISCONNECTED))

En genau derselbe Code funktioniert, wenn Ausführen von Visual Studio . Die Ausnahme passiert nur, wenn ich versuche vom IIS aus laufen .

Könnte es mit einer Genehmigung zu tun haben? Ich habe volle Kontrollrechte für folgende Personen erteilt Everyone , ISUSR , Network , Network Service , System , Administrators ... Und ich habe auch versucht, Impersonate mit einem Administratorkonto zu verwenden.

Wie kann ich es reparieren, so dass es funktioniert, wenn ich es von IIS aus ausführe?


Hier ist die Klasse, die ich erstellt habe, um das Dokument zu bearbeiten: http://pastebin.com/yB2s0jn4

Und so nenne ich es

using (var doc = new HtmlWordDocument(outFile))
{
    // calls Selection.InsertFile( file )
    doc.WriteContent(tempFile);

    // calls document.SaveAs()
    doc.Save();
}

0voto

Michał Powaga Punkte 21502

Haben Sie es mit Impersonation ( Wie implementiert man Impersonation in einer ASP.NET-Anwendung? )? wie unten:

System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext = 
    ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();

    using (var doc = new HtmlWordDocument(outFile))
    {
        // calls Selection.InsertFile( file )
        doc.WriteContent(tempFile);

        // calls document.SaveAs()
        doc.Save();
    }

impersonationContext.Undo();

0voto

Payedimaunt Punkte 966

Sie müssen den IISADMIN-Dienst aktivieren, der aber nicht standardmäßig installiert ist. Dieser Dienst ermöglicht es, IIS mit mehr OS-Ressourcen zu verbinden.

Sieh dir das an...

https://social.msdn.microsoft.com/Forums/en-US/28ddf643-0f9b-46e6-a8c5-a83f5a36c361/not-able-to-see-iis-admin-service-in-Windows-server-2008-r2?forum=netfxbcl

und dies...

https://support.microsoft.com/en-us/kb/555134

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X