2010-02-10 11 views
5

Tengo una DLL .NET que escribe en el Rastreo. Pero parece que cuando llamo a mi DLL desde un EXE VB6 el rastreo no funciona. He creado un archivo myApp.config en la carpeta EXE con la configuración de seguimiento, pero esto no resuelve el problema.Rastreo no funciona en una DLL .NET cargada desde EXE VB6

También he intentado crear los objetos de rastro en el código, pero no funciona:

Dim _traceSrc As TraceSource = New TraceSource("myTraceSorce") 
Dim flListener As FileLogTraceListener = New FileLogTraceListener("myFileLogTraceListener") 
Dim tSwitch As SourceSwitch = New SourceSwitch("mySwitch") 
tSwitch.Level = _logLevel 

Si llamo a mi DLL desde un EXE .NET funciona, incluso si no tengo la aplicación. config en la carpeta EXE, porque lo configuro en código si no se encuentra la configuración.

Respuesta

3

Si su aplicación VB6 se llama MyApp.exe, entonces el archivo de configuración se debe llamar MyApp.exe.config. (MyApp.config también funciona a veces según las versiones de .NET Framework y los service packs.)

Dentro de ese archivo de configuración su configuración debería funcionar.

Tengo el seguimiento en mi código que se ejecuta desde VB6 a través de COM que funciona bien.

¿Existe alguna posibilidad de que sus privilegios sean diferentes cuando ejecuta el código VB6?

Finalmente, si está depurando la aplicación VB6 en el IDE de VB6, debe agregar la configuración al VB6.exe.config en la carpeta VB6.exe y reiniciar VB6 para asegurarse de que se noten los cambios.

-2

Creo que el problema es que VB6 está utilizando COM para cargar su DLL administrada.

El código .NET no cargará su archivo .config ya que utiliza un único controlador 'shim' para todas las COM Interop.

Lo mejor que puede hacer es agregar algo a su archivo machine.config (pero a la mayoría de las personas no les gusta hacer eso).

Inicializar el rastreo en el código debería funcionar bien. Elimine su configuración de rastreo del .EXE administrado y ejecútelo en un depurador para verificar que la versión del código también funcione allí.

Cuestiones relacionadas