Pergunta

Eu tenho uma web do windows 2008 x64 instalação em execução.

Devido à necessidade de a aplicação ter a capacidade de importação de arquivos do Excel, tive que mudar de aplicativo web para ser executado no modo de 32 bits.O MSAccess/Excel bibliotecas não estão disponíveis na versão de 64 bits.

Eu também tive de elavate o aplicativo para ser executado em confiança=Full.Anteriormente, ele estava sob=nível médio.

Existe uma boa solução para esse problema.Eu quero trazer o nível de confiança baixo e não tem compromisso com o aplicativo de 32 bits só porque uma tela requer de importação do excel (uso desta tela não é freqüente, assim como)

É possível definir uma pasta específica/página para usar 32 bits do aplicativo, e o resto, como x64.Eu não acredito que você pode.E mesmo para o nível de confiança.É o nível de confiança de aplicação específica ou posso enviada em uma pasta aninhada?

Foi útil?

Solução

Como Foxfire aponta corretamente, você não pode misturar código de 32 bits e 64 bits no mesmo processo.

Qualquer aplicativo ASP.NET que precise interagir com o Office exigirá níveis elevados de confiança.

Existe uma maneira de contornar isso usando uma técnica conhecida como 'Sandboxing'.

O que você faz é escrever uma montagem de wrapper que faça apenas o trabalho que você precisa realizado com o Excel. Marque a montagem com o [assembly: AllowPartiallyTrustedCallers] Atribua, assine -o e depois implante no GAC.

Quaisquer classes nesta assembléia necessárias para conversar com os componentes da interop do escritório devem ser atribuídos com [PermissionSet(SecurityAction.Assert, Unrestricted=true)] ou qualquer demanda necessária.

Isso permitirá que você diminua o nível de confiança no seu servidor, mas ainda use os componentes do escritório.

Isso se baseia no pressuposto de que você tem acesso administrativo ao servidor para poder soltar a montagem de sandbox 'confiável' no GAC.

Outras dicas

Dentro de um mesmo processo, você nunca pode ter o misto de 32 e 64 bits.Talvez você poderia escrever um segundo aplicativo que faz o Excel coisas para você e, em seguida, compilá-lo em um executável de 32 bits.Em seguida, você pode chamar (executar o arquivo com alguns parâmetros) que o executável a partir do seu aplicativo da web (ainda exigem confiança total, mas poderia executar 64bit, em seguida,).

Editar:Você não precisa de total confiança obrigatoriamente.Você também pode criar um personalizado de nível de confiança.Mas o ponto é que ele não será executado no padrão web trustlevel permanece.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top