Frage

Ich habe eine Windows Web 2008 x64 Installation läuft.

Durch die Voraussetzung für die Anwendung der Fähigkeit, Excel-Dateien zu importieren, Ich habe die Web-Anwendung zu ändern, in 32-Bit-Modus auszuführen. Die MS Access / Excel-Bibliotheken sind in x64 nicht verfügbar ist.

Ich habe auch die Anwendung elavate in Vertrauen = Voll laufen. Bisher war es unter level = mittel.

Gibt es eine gute Abhilfe für dieses Problem. Ich möchte Sie die Vertrauensebene bringen, und die App nicht gefährden, nur weil ein Bildschirm 32bit erfordert Excel-Import (Verwendung dieses Bildschirms ist nicht häufig auch)

Ist es möglich, eine bestimmte Ordner / Seite einstellen 32 Bit in der Anwendung zu verwenden und den Rest als x64. Ich glaube nicht, Sie können. Und gleich für Vertrauensebene. Ist die Vertrauensebene anwendungsspezifische oder kann ich es in einem verschachtelten Ordner gesendet?

War es hilfreich?

Lösung

Wie FoxFire Punkte korrekt heraus, Sie kann nicht 32bit und 64bit-Code im gleichen Prozess mischen.

Jede ASP.NET-Anwendung, die mit Office interagieren muss, wird erhöht Vertrauensebene erfordern.

Es gibt einen Weg, um diesen unter Verwendung einer Technik bekannt als ‚Sandbox‘.

Was Sie tun, ist eine Wrapper-Baugruppe schreiben, die nur die Arbeit macht Sie mit Excel gemacht erfordern. Markieren Sie die Baugruppe mit dem [assembly: AllowPartiallyTrustedCallers] Attribute, unterschreibt und dann verteilt in den GAC.

Alle Klassen, in dieser Versammlung, die zu den Office-Interop-Komponenten sind erforderlich, sprechen sollten mit [PermissionSet(SecurityAction.Assert, Unrestricted=true)] oder was auch immer Bedarf erforderlich zurückgeführt werden.

Dies ermöglicht es Ihnen, das Vertrauen Ebene auf dem Server zu senken, aber immer noch die Office-Komponenten verwendet werden.

Dies basiert auf der Annahme basiert, dass Sie den administrativen Zugriff auf den Server haben, um die ‚größte‘ Sandbox-Assembly in dem GAC fallen.

Andere Tipps

Im gleichen Prozess kann man nie haben 32bit und 64bit gemischt. Man könnte vielleicht eine zweite Anwendung schreiben, die das Excel-Material für Sie tun und es dann in ein 32-Bit-ausführbaren kompilieren. Sie könnten dann rufen Sie (die Datei mit einigen Parametern ausführen), dass die ausführbare Datei von Ihrer Web-Anwendung (noch volles Vertrauen erfordern, aber es könnte 64bit laufen dann).

Edit: Sie brauchen nicht in voller Vertrauen neccessarily. Sie können auch ein eigenes Trust-Level erstellen. Aber der Punkt ist, dass es nicht in Standard-Web-Trustlevel bleibt ausgeführt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top