asp.net oracle 64bit webdev.webserver

asp.net - ¿Cómo utilizar WebDev.WebServer.exe(servidor web VS) en x64?



oracle 64bit (4)

Dos ideas:

  1. Cobble algo junto con XSP del proyecto Mono .
  2. Pruebe en un entorno totalmente de 32 bits, implemente en un entorno de 64 bits.

Visual Studio es x86 hasta que al menos la versión 2010 se actualice: este es un problema en VS2010, no hay soporte nativo de 64 bits para Cassini. Mi pregunta es: ¿alguien puede pensar en una forma o conocer un servidor de depuración ASP.NET independiente que sea x64 para 2008 o 2010?

Antecedentes: nuestra aplicación ASP.NET se ejecuta contra Oracle como la base de datos. Ya que estamos en servidores de 64 bits para problemas de memoria más adelante, necesitamos usar los controladores de 64 bits de Oracle (Instant Client).

Preparar:

En IIS, el grupo de aplicaciones se ejecuta como de 64 bits, utiliza los controladores de Oracle según lo previsto, sin embargo, dado que WebDev.WebServer.exe es de 32 bits, obtendrá una excepción BadImageFormatException porque intenta cargar DLL de 64 bits en un dispositivo de 32 bits. ambiente. A todos nuestros desarrolladores les gustaría poder usar el servidor de depuración rápida a través de Visual Studio 2008, pero como funciona a 32 bits, no podemos hacerlo. Algunos de los problemas con los que nos encontramos son durante el inicio de la aplicación, por lo que aunque estamos adjuntando al proceso de IIS a veces eso no es suficiente para rastrear un problema.

¿Hay alternativas, o soluciones alternativas? Nos gustaría igualar nuestros niveles Dev / Val / Prod tanto como sea posible, por lo que todo lo que se ejecuta en x64 sería ideal.

Actualización para VS 2010

Muchos cambios en esta pregunta desde que se publicó por primera vez, el primer VS2010 ya está disponible, todavía tiene los mismos problemas aquí, sin embargo, el proyecto en el que estoy no. Pasamos por 2 cambios para resolver esto, así que los publicaré con la esperanza de que salve el dolor de otra persona:

La primera solución fue cargar Oracle x86 en 32 bits más, x64 en modo de 64 bits, lo hicimos reemplazando la referencia del ensamblaje cuando se ejecuta bajo 64 bits a través de web.config, como esto:

<configuration> <runtime> <assemblyBinding> <dependentAssembly> <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" processorArchitecture="amd64" /> <bindingRedirect oldVersion="2.0.0.0-10.9.9.9" newVersion="2.102.3.2" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>

La clave aquí es processorArchitecture="amd64" , esto significa que el reemplazo solo ocurre cuando se ejecuta bajo 64 bits.

Tenga en cuenta que estas versiones pueden estar desactualizadas ahora (si está leyendo esto, especialmente sobre Oracle), fue hace un tiempo. Además de la configuración, Oracle.DataAccess versiones de Oracle.DataAccess de 32 bits y 64 bits en el GAC . Las versiones de 32 bits son 10.xxx para Oracle 10g, las versiones de 64 bits son 2.1xxx , así que solo funciona el intercambio de enlaces mediante <assemblyBinding> .

La segunda solución, a más largo plazo, fue dejar el cliente Oracle completamente, ahora estamos usando dotConnect for Oracle para nuestro proveedor de Linux a SQL, y como es un código completamente administrado que usa una conexión TCP directa, no tenemos más 32 / Código específico de 64 bits en la aplicación, que es mucho más fácil de mantener.

Espero que quien encuentre esto también encuentre útil el seguimiento. Si tiene alguna pregunta sobre alguna de las soluciones que terminé usando, comente y trataré de explicarlo con más detalle.


Incluso si está utilizando un entorno de 64 bits, las dlls de 32 bits de referencia temporal en Visual Studio (o las copian manualmente en la carpeta BIN) para que pueda depurarlas. Tenga en cuenta que cada vez que compile el código, volverá a copiar los ensamblajes de 64 bits en la carpeta BIN.


Puedes intentar compilar una Cassini de 64 bits desde la source .


Utilice IIS en su máquina local.