Solução para executar uma DLL de 32 bits em um processo de 64 bits ou vice-versa

3

Estou executando o Windows Vista Business 64 bits. Eu tenho um serviço da web que foi escrito em .net usando c #. Eu também tenho um script do lado do cliente em uma página da web que se comunica com o serviço da web. Esta é uma página aspx intitulada "Default.aspx". Configurei o IIS e movi minha pasta de serviço da Web contendo o serviço da Web e todos os arquivos necessários para executá-lo, incluindo a página default.aspx em C: \ inetpub \ wwwroot. Eu abri o gerenciador do IIS e configurei tudo corretamente. Agora recebo uma mensagem de erro:

Foi feita uma tentativa de carregar um programa com um formato incorreto. (Exceção de HRESULT: 0x8007000B)

Foi-me dito que isso poderia ser um problema com a minha chave de licença, o aplicativo foi configurado para um formato diferente ou há um arquivo corrompido em algum lugar. Minha chave de licença está bem e não acredito que exista um arquivo corrompido. Eu acho que o problema é que eu estou tentando carregar uma DLL de 32 bits em um processo de 64 bits ou vice-versa. A mensagem de erro detalhada está abaixo. Se alguém puder, por favor, me dar uma solução detalhada, já que dei uma descrição detalhada, agradeceria muito. Eu tenho lutado com isso o dia todo e estou frustrado. por favor me ajude.

Detalhes da exceção: System.BadImageFormatException: Foi feita uma tentativa de carregar um programa com um formato incorreto. (Exceção de HRESULT: 0x8007000B)

Erro de origem:

Uma exceção não tratada foi gerada durante a execução da solicitação da web atual. Informações sobre a origem e localização da exceção podem ser identificadas usando o rastreamento de pilha de exceção abaixo.

Rastreamento de pilha:

[BadImageFormatException: Foi feita uma tentativa de carregar um programa com um formato incorreto. (Exceção de HRESULT: 0x8007000B)] Luxand.FSDK.ActivateLibrary (String LicenseKey) +0 FaceRecognition._Default.Page_Load (remetente do objeto, EventArgs e) em D: \ Detalhes do Projeto \ Projetos Layne \ Projeto DotNet \ FaceRecognition \ FaceRecognition \ Default. aspx.cs: 60 System.Web.Util.CalliHelper.EventArgFunctionCaller (ftt IntPtr, objeto o, objeto t, EventArgs e) +25 System.Web.Util.CalliEventHandlerDelegateProxy.Callback (objeto remetente, EventArgs e) +42 System.Web .UI.Control.OnLoad (EventArgs e) +132 System.Web.UI.Control.LoadRecursive () +66 System.Web.UI.Page.ProcessRequestMain (Booleano includeStagesBeforeAsyncPoint, booleano includeStagesAfterAsyncPoint) +2428

    
por Brandon 14.02.2010 / 00:33

1 resposta

4

No IIS 7, você pode configurar pools de aplicativos para serem executados no modo de 32 bits; isso é bastante útil quando você precisa acessar DLLs que estão disponíveis apenas para sistemas de 32 bits.

Você pode modificar as propriedades do pool de aplicativos padrão para que todo o seu servidor da Web seja executado no modo x86 ou criar um novo pool de aplicativos, configurá-lo para 32 bits e atribuir sites e / ou diretórios virtuais específicos a ele .

    
por 14.02.2010 / 00:43