Otra vez .Net y COM+

21/04/2004 - 23:03 por Roberto G. A. | Informe spam
En una pregunta anterior en la que tenía problemas al
registrar un esamblado en COM+ hice lo que me aconsejaron
en las respuestas recibidas, pero... :-(

Eliminé de la configuración:
de: Register for COM Interop = True







a: Register for COM Interop = False

pero al añadir manualmente el ensamblado desde la consola
de COM+ me sigue dando el mismo error.

la única manera de registrar dicho componente en com+ es:


regsvcs /fc Class1.dll





pero ocurren dos cosas curiosillas:
1.- El método no aparece en la consola COM+
2.- Al invocar el componente con un programita de pruebas
en la consola de COM+ no aparecen los atributos: Objects,
Activated, In Call, Call Time...

Adjunto el código fuente por si puede revelar algo:

Datos del ensamblado añadidos para COM+>>
-
using System.EnterpriseServices;

[assembly: ApplicationName("COMClass")]
[assembly: ApplicationActivation(ActivationOption.Server)]

Código>>
-
using System;
using System.EnterpriseServices;

namespace Class1
{
public class Class1 : ServicedComponent
{
public Class1()
{
}

public string GetName()
{
try
{

return "Roberto";
}
catch(Exception e)
{
throw(e);
}
}
}
}


Gracias a todos por las respuestas :-) sigo peleandome con
ello
Roberto G.A.

Preguntas similare

Leer las respuestas

#1 José Miguel Torres
22/04/2004 - 09:19 | Informe spam
Hola de nuevo roberto.

Si le añades al Assembly esta linea:

[assembly: CLSCompliant(true)]

la primera vez que se llame al componente se registrará el solo. Deja que
sea el quien se registre a ver que pasa.
Por cierto, en la consola que registras la .dll o el .tlb?


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es

"Roberto G. A." escribió en el mensaje
news:26eb01c427e4$1f0a4510$
En una pregunta anterior en la que tenía problemas al
registrar un esamblado en COM+ hice lo que me aconsejaron
en las respuestas recibidas, pero... :-(

Eliminé de la configuración:
de: Register for COM Interop = True





a: Register for COM Interop = False

pero al añadir manualmente el ensamblado desde la consola
de COM+ me sigue dando el mismo error.

la única manera de registrar dicho componente en com+ es:
regsvcs /fc Class1.dll





pero ocurren dos cosas curiosillas:
1.- El método no aparece en la consola COM+
2.- Al invocar el componente con un programita de pruebas
en la consola de COM+ no aparecen los atributos: Objects,
Activated, In Call, Call Time...

Adjunto el código fuente por si puede revelar algo:

Datos del ensamblado añadidos para COM+>>
-
using System.EnterpriseServices;

[assembly: ApplicationName("COMClass")]
[assembly: ApplicationActivation(ActivationOption.Server)]

Código>>
-
using System;
using System.EnterpriseServices;

namespace Class1
{
public class Class1 : ServicedComponent
{
public Class1()
{
}

public string GetName()
{
try
{

return "Roberto";
}
catch(Exception e)
{
throw(e);
}
}
}
}


Gracias a todos por las respuestas :-) sigo peleandome con
ello
Roberto G.A.
Respuesta Responder a este mensaje
#2 José Miguel Torres
22/04/2004 - 09:53 | Informe spam
En cuanto a el porque no aparecen los métodos tiene una explicación. En el
servicio de componentes se muestran los componentes como objetos COM. Los
desarrollados en .NET (codigo administrado) cuentan con la clave
InProcServer32 apuntando a mscoree.dll, fíjate y verás, mientras que los
objetos COM apuntan a sus dll. Si la clase administrada (.NET) no
implementa ninguna interfaz pública, los métodos de éstos no aparecen en el
catálogo de COM+ ( amenos que se emplee el atributo
ClassInterfaceAttribute), o sea que la configuración de servicio a nivel de
método no se puede guardar en el catálogo. Mi consejo es que implantes
interfaz si necesitas utilizar servicios COM+ a nivel de método (seguridad
por ejemplo),,


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es


"Roberto G. A." escribió en el mensaje
news:26eb01c427e4$1f0a4510$
En una pregunta anterior en la que tenía problemas al
registrar un esamblado en COM+ hice lo que me aconsejaron
en las respuestas recibidas, pero... :-(

Eliminé de la configuración:
de: Register for COM Interop = True





a: Register for COM Interop = False

pero al añadir manualmente el ensamblado desde la consola
de COM+ me sigue dando el mismo error.

la única manera de registrar dicho componente en com+ es:
regsvcs /fc Class1.dll





pero ocurren dos cosas curiosillas:
1.- El método no aparece en la consola COM+
2.- Al invocar el componente con un programita de pruebas
en la consola de COM+ no aparecen los atributos: Objects,
Activated, In Call, Call Time...

Adjunto el código fuente por si puede revelar algo:

Datos del ensamblado añadidos para COM+>>
-
using System.EnterpriseServices;

[assembly: ApplicationName("COMClass")]
[assembly: ApplicationActivation(ActivationOption.Server)]

Código>>
-
using System;
using System.EnterpriseServices;

namespace Class1
{
public class Class1 : ServicedComponent
{
public Class1()
{
}

public string GetName()
{
try
{

return "Roberto";
}
catch(Exception e)
{
throw(e);
}
}
}
}


Gracias a todos por las respuestas :-) sigo peleandome con
ello
Roberto G.A.
Respuesta Responder a este mensaje
#3 Roberto G. A.
22/04/2004 - 10:32 | Informe spam
El registro del ensamblado lo hago de la siguiente manera:
regsvcs Class1.dll





He añadido la linea en el ensamblado pero sigue en sus
trece...

La clase funciona y todo, lo que ocuerre es que en la
consola de COM+ no consigo ver información de cada vez que
se ejecuta: Objects, Activated, In Call, Call Time... ni
información de los métodos. Lo cual me deja extrañado y no
sé si es por algo que estoy haciendo mal... :-(

Agradezco tu paciencia José Miguel, gracias.
Roberto G. A.

Hola de nuevo roberto.

Si le añades al Assembly esta linea:

[assembly: CLSCompliant(true)]

la primera vez que se llame al componente se registrará


el solo. Deja que
sea el quien se registre a ver que pasa.
Por cierto, en la consola que registras la .dll o el .tlb?


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es

"Roberto G. A."


escribió en el mensaje
news:26eb01c427e4$1f0a4510$
En una pregunta anterior en la que tenía problemas al
registrar un esamblado en COM+ hice lo que me aconsejaron
en las respuestas recibidas, pero... :-(

Eliminé de la configuración:
de: Register for COM Interop = True





a: Register for COM Interop = False

pero al añadir manualmente el ensamblado desde la consola
de COM+ me sigue dando el mismo error.

la única manera de registrar dicho componente en com+ es:
regsvcs /fc Class1.dll





pero ocurren dos cosas curiosillas:
1.- El método no aparece en la consola COM+
2.- Al invocar el componente con un programita de pruebas
en la consola de COM+ no aparecen los atributos: Objects,
Activated, In Call, Call Time...

Adjunto el código fuente por si puede revelar algo:

Datos del ensamblado añadidos para COM+>>
-
using System.EnterpriseServices;

[assembly: ApplicationName("COMClass")]
[assembly: ApplicationActivation(ActivationOption.Server)]

Código>>
-
using System;
using System.EnterpriseServices;

namespace Class1
{
public class Class1 : ServicedComponent
{
public Class1()
{
}

public string GetName()
{
try
{

return "Roberto";
}
catch(Exception e)
{
throw(e);
}
}
}
}


Gracias a todos por las respuestas :-) sigo peleandome con
ello
Roberto G.A.


.

Respuesta Responder a este mensaje
#4 José Miguel Torres
22/04/2004 - 13:12 | Informe spam
Lo de los métodos.. no te preocupes no haces nada mal:

En cuanto a el porque no aparecen los métodos tiene una explicación. En el
servicio de componentes se muestran los componentes como objetos COM. Los
desarrollados en .NET (codigo administrado) cuentan con la clave
InProcServer32 apuntando a mscoree.dll, fíjate y verás, mientras que los
objetos COM apuntan a sus dll. Si la clase administrada (.NET) no
implementa ninguna interfaz pública, los métodos de éstos no aparecen en el
catálogo de COM+ ( amenos que se emplee el atributo
ClassInterfaceAttribute), o sea que la configuración de servicio a nivel de
método no se puede guardar en el catálogo. Mi consejo es que implantes
interfaz si necesitas utilizar servicios COM+ a nivel de método (seguridad
por ejemplo),,



José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es

"Roberto G. A." escribió en el mensaje
news:29a901c42844$4f85ea40$
El registro del ensamblado lo hago de la siguiente manera:
regsvcs Class1.dll





He añadido la linea en el ensamblado pero sigue en sus
trece...

La clase funciona y todo, lo que ocuerre es que en la
consola de COM+ no consigo ver información de cada vez que
se ejecuta: Objects, Activated, In Call, Call Time... ni
información de los métodos. Lo cual me deja extrañado y no
sé si es por algo que estoy haciendo mal... :-(

Agradezco tu paciencia José Miguel, gracias.
Roberto G. A.

Hola de nuevo roberto.

Si le añades al Assembly esta linea:

[assembly: CLSCompliant(true)]

la primera vez que se llame al componente se registrará


el solo. Deja que
sea el quien se registre a ver que pasa.
Por cierto, en la consola que registras la .dll o el .tlb?


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es

"Roberto G. A."


escribió en el mensaje
news:26eb01c427e4$1f0a4510$
En una pregunta anterior en la que tenía problemas al
registrar un esamblado en COM+ hice lo que me aconsejaron
en las respuestas recibidas, pero... :-(

Eliminé de la configuración:
de: Register for COM Interop = True





a: Register for COM Interop = False

pero al añadir manualmente el ensamblado desde la consola
de COM+ me sigue dando el mismo error.

la única manera de registrar dicho componente en com+ es:
regsvcs /fc Class1.dll





pero ocurren dos cosas curiosillas:
1.- El método no aparece en la consola COM+
2.- Al invocar el componente con un programita de pruebas
en la consola de COM+ no aparecen los atributos: Objects,
Activated, In Call, Call Time...

Adjunto el código fuente por si puede revelar algo:

Datos del ensamblado añadidos para COM+>>
-
using System.EnterpriseServices;

[assembly: ApplicationName("COMClass")]
[assembly: ApplicationActivation(ActivationOption.Server)]

Código>>
-
using System;
using System.EnterpriseServices;

namespace Class1
{
public class Class1 : ServicedComponent
{
public Class1()
{
}

public string GetName()
{
try
{

return "Roberto";
}
catch(Exception e)
{
throw(e);
}
}
}
}


Gracias a todos por las respuestas :-) sigo peleandome con
ello
Roberto G.A.


.

Respuesta Responder a este mensaje
#5 Roberto G.A.
22/04/2004 - 16:18 | Informe spam
Bueno, al final he conseguido todo menos que al ejecutar
el componente en COM+ se muestren en la consola
información del mismo: |Objects|Activated|Pooled|In Call...

Incluso he descargado algunos ejemplos en internet y
tienen el mismo problema... seguiré investigando.

Mil gracias...
Roberto G.A.


En cuanto a el porque no aparecen los métodos tiene una


explicación. En el
servicio de componentes se muestran los componentes como


objetos COM. Los
desarrollados en .NET (codigo administrado) cuentan con


la clave
InProcServer32 apuntando a mscoree.dll, fíjate y verás,


mientras que los
objetos COM apuntan a sus dll. Si la clase administrada


(.NET) no
implementa ninguna interfaz pública, los métodos de éstos


no aparecen en el
catálogo de COM+ ( amenos que se emplee el atributo
ClassInterfaceAttribute), o sea que la configuración de


servicio a nivel de
método no se puede guardar en el catálogo. Mi consejo es


que implantes
interfaz si necesitas utilizar servicios COM+ a nivel de


método (seguridad
por ejemplo),,


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es


"Roberto G. A."


escribió en el mensaje
news:26eb01c427e4$1f0a4510$
En una pregunta anterior en la que tenía problemas al
registrar un esamblado en COM+ hice lo que me aconsejaron
en las respuestas recibidas, pero... :-(

Eliminé de la configuración:
de: Register for COM Interop = True





a: Register for COM Interop = False

pero al añadir manualmente el ensamblado desde la consola
de COM+ me sigue dando el mismo error.

la única manera de registrar dicho componente en com+ es:
regsvcs /fc Class1.dll





pero ocurren dos cosas curiosillas:
1.- El método no aparece en la consola COM+
2.- Al invocar el componente con un programita de pruebas
en la consola de COM+ no aparecen los atributos: Objects,
Activated, In Call, Call Time...

Adjunto el código fuente por si puede revelar algo:

Datos del ensamblado añadidos para COM+>>
-
using System.EnterpriseServices;

[assembly: ApplicationName("COMClass")]
[assembly: ApplicationActivation(ActivationOption.Server)]

Código>>
-
using System;
using System.EnterpriseServices;

namespace Class1
{
public class Class1 : ServicedComponent
{
public Class1()
{
}

public string GetName()
{
try
{

return "Roberto";
}
catch(Exception e)
{
throw(e);
}
}
}
}


Gracias a todos por las respuestas :-) sigo peleandome con
ello
Roberto G.A.


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida