REVISIÓN: Una excepción no se provoca al llamador administrado cuando implementar un contador de referencias personalizado en una aplicación de .NET Framework 2.0

Seleccione idioma Seleccione idioma
Id. de artículo: 917868 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

Cuando se implementa un contador de referencias personalizado en un Microsoft .NET Framework 2.0 (aplicación), una excepción no se provoca al llamador administrado. Debe iniciar la excepción en el método ICustomMarshaler.CleanUpNativeData para indicar un error en código nativo.

Solución

Ahora hay disponible un hotfix para el que Microsoft proporciona soporte técnico, pero que sólo se diseñó para corregir el problema descrito en este artículo. Aplíquelo sólo a sistemas que experimenten este problema específico. Este hotfix puede ser sometido a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere al próximo Microsoft .NET Framework 2.0 service pack que contenga este hotfix.

Para resolver este problema inmediatamente, póngase en contacto con servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de los números de teléfono de los servicios de soporte técnico de Microsoft e información acerca de los costos de soporte, visite el siguiente sitio Web:
http://support.microsoft.com/contactus/?ws=support
Nota en casos especiales, los costos derivados normalmente de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.
La versión en inglés de este hotfix tiene los atributos de archivo (o atributos de último archivo) mostrados en la siguiente tabla. Las fechas y las horas de estos archivos se muestran en hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para averiguar la diferencia entre hora UTC y la hora local, utilice la ficha zona horaria el elemento fecha y hora en el panel de control.

Microsoft .NET framework 2.0, los sistemas de 32 bits

Contraer esta tablaAmpliar esta tabla
Nombre de archivoArchivo VersiónTamaño de archivoFechaTiempoPlataforma
Mscordacwks.dll2.0.50727.166801,28013-Jun-200613: 03x 86
Mscorlib.dll2.0.50727.1664,317,18413-Jun-200613: 03x 86
Mscorwks.dll2.0.50727.1665,623,80813-Jun-200613: 03x 86
Normalization.dll2.0.50727.16615,36013-Jun-200613: 03x 86
Normidna.nlpNo aplicable59,34213-Jun-200613: 03No aplicable
Normnfc.nlpNo aplicable45,79413-Jun-200613: 03No aplicable
Normnfd.nlpNo aplicable39,28413-Jun-200613: 03No aplicable
Normnfkc.nlpNo aplicable66,38413-Jun-200613: 03No aplicable
Normnfkd.nlpNo aplicable60,29413-Jun-200613: 03No aplicable
SOS.dll2.0.50727.166377,34413-Jun-200613: 03x 86

Microsoft .NET framework 2.0, los sistemas de 64 bits

Contraer esta tablaAmpliar esta tabla
Nombre de archivoArchivo VersiónTamaño de archivoFechaTiempoPlataforma
Mscordacwks.dll2.0.50727.1661,597,44013-Jun-200609: 04x 64
Mscorlib.dll2.0.50727.1663,956,73613-Jun-200609: 17x 64
Mscorwks.dll2.0.50727.16610,300,92813-Jun-200604: 06x 64
Normalization.dll2.0.50727.16618,43213-Jun-200604: 06x 64
Normidna.nlpNo aplicable59,34213-Jun-200609: 04No aplicable
Normnfc.nlpNo aplicable45,79413-Jun-200609: 04No aplicable
Normnfd.nlpNo aplicable39,28413-Jun-200609: 04No aplicable
Normnfkc.nlpNo aplicable66,38413-Jun-200609: 04No aplicable
Normnfkd.nlpNo aplicable60,29413-Jun-200609: 04No aplicable
SOS.dll2.0.50727.166476,16013-Jun-200604: 16x 64

Microsoft .NET framework 2.0, los sistemas basados en itanium

Contraer esta tablaAmpliar esta tabla
Nombre de archivoArchivo VersiónTamaño de archivoFechaTiempoPlataforma
Mscordacwks.dll2.0.50727.1662,710,52813-Jun-200614: 04IA-64
Mscorlib.dll2.0.50727.1663,956,73613-Jun-200610: 01IA-64
Mscorwks.dll2.0.50727.16621,258,75213-Jun-200611: 04IA-64
Normalization.dll2.0.50727.16644,03213-Jun-200611: 04IA-64
Normidna.nlpNo aplicable59,34213-Jun-200614: 04No aplicable
Normnfc.nlpNo aplicable45,79413-Jun-200614: 04No aplicable
Normnfd.nlpNo aplicable39,28413-Jun-200614: 04No aplicable
Normnfkc.nlpNo aplicable66,38413-Jun-200614: 04No aplicable
Normnfkd.nlpNo aplicable60,29413-Jun-200614: 04No aplicable
SOS.dll2.0.50727.166857,08813-Jun-200622: 04IA-64

Solución

Para evitar este problema, establezca el atributo de entrada y salida en el parámetro que realizará el cálculo de referencias personalizado en. Después de establecer el parámetro in/out , llame al método MarshalNativeToManaged después de llamar el método nativo. La llamada de cálculo de referencias personalizada debe parecerse a lo siguiente:
static extern void TestMethod(int outputKind, [In, Out, MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(CustomMarshaler))]object data);
Nota en un equipo que ejecuta una versión de 64 bits de Microsoft Windows, puede evitar este problema utilizando sólo esta solución. Sin embargo, en un equipo que ejecuta una versión de 32 bits de Windows, debe aplicar el paquete de hotfix antes de utilizar esta solución.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Más información

Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft
Para obtener más información, visite los siguientes sitios Web de Microsoft Developer Network (MSDN):
http://windowssdk.msdn.microsoft.com/en-us/library/system.runtime.interopservices.icustommarshaler.marshalnativetomanaged.aspx

http://msdn2.microsoft.com/en-us/library/system.runtime.interopservices.icustommarshaler.cleanupnativedata.aspx

Propiedades

Id. de artículo: 917868 - Última revisión: lunes, 03 de diciembre de 2007 - Versión: 1.3
La información de este artículo se refiere a:
  • Microsoft .NET Framework 2.0
Palabras clave: 
kbmt kbfix kbbug kbhotfixserver kbqfe kbpubtypekc KB917868 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 917868

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com