2009-10-26 5 views
1

L'installation de Windows Web 2008 x64 est en cours. En raison de la nécessité pour l'application ayant la capacité d'importer des fichiers Excel, j'ai dû changer l'application Web pour fonctionner en mode 32 bits. Les bibliothèques MSAccess/Excel ne sont pas disponibles en x64.Exécution d'une application Web 32/64 bits

J'ai également dû utiliser l'application pour s'exécuter dans trust = Full. Auparavant, il était sous niveau = moyen.

Y a-t-il une bonne solution à ce problème? Je veux réduire le niveau de confiance et ne pas avoir à compromettre l'application en 32bit juste parce qu'un écran nécessite une importation Excel (l'utilisation de cet écran n'est pas fréquente aussi)

Est-il possible de définir un dossier/une page en particulier utiliser 32 bits dans l'application, et le reste en x64. Je ne crois pas que tu puisses. Et même pour le niveau de confiance. L'application de niveau de confiance est-elle spécifique ou puis-je l'envoyer dans un dossier imbriqué?

+1

À quel point les fichiers Excel sont-ils complexes? Pourraient-ils être convertis en CSV et ensuite importés en tant que texte? –

+0

Les données sont extraites de 3 feuilles de travail. L'exigence est excellente, CSV est une dernière option absolue. – minalg

Répondre

1

En tant que FoxFire correctly points out, vous ne pouvez pas mélanger du code 32 bits et 64 bits dans le même processus.

Toute application ASP.NET qui doit interagir avec Office nécessitera des niveaux de confiance élevés.

Il existe un moyen de contourner cela en utilisant une technique appelée «sandboxing».

Ce que vous faites est d'écrire un encapsuleur qui ne fait que le travail dont vous avez besoin avec Excel. Marquez l'assembly avec l'attribut [assembly: AllowPartiallyTrustedCallers], signez-le, puis déployez-le dans le GAC.

Toutes les classes de cet ensemble qui sont requises pour parler aux composants Office Interop doivent être associées à [PermissionSet(SecurityAction.Assert, Unrestricted=true)] ou à toute autre demande requise. Cela vous permettra de réduire le niveau de confiance sur votre serveur tout en utilisant les composants Office. Ceci est basé sur l'hypothèse que vous avez un accès administratif au serveur pour pouvoir déposer l'assembly sandbox "approuvé" dans le GAC.

3

Dans le même processus, vous ne pouvez jamais avoir mixte 32bit et 64bit. Vous pourriez peut-être écrire une deuxième application qui fait les choses Excel pour vous et ensuite compiler dans un exécutable 32 bits. Vous pouvez ensuite appeler (exécuter le fichier avec quelques paramètres) cet exécutable à partir de votre application web (cela nécessitera toujours une confiance totale, mais il pourra alors exécuter 64bit).

Éditer: Vous n'avez pas besoin de confiance totale. Vous pouvez également créer un niveau de confiance personnalisé. Mais le fait est que cela ne fonctionnera pas dans les restes standard du site web trustlevel.

Questions connexes