Tengo la siguiente pregunta: ¿Es posible que el ensamblado .NET sea registrado ambos con Regsm y Regsvcs? GraciasRegistro con regasm y regsvcs
Respuesta
Esta es una respuesta de tiempo de espera para la pregunta. pero déjame explicarte las diferencias de las que soy consciente.
Para comprender esto, debe invocar las diferencias entre una aplicación COM y COM +.
Registre sus tipos como COM - crea un objeto de la demanda cada vez que un código intenta inicializar el objeto
Registro de sus tipos como aplicación COM + - crea un objeto, es compatible con la agrupación de objetos, soporta transacciones, soportes mejorado Windows seguridad y más.
Para comprender la puesta en común, Tomo prestado una respuesta de http://www.tek-tips.com/viewthread.cfm?qid=116249
COM + 'principal método de añadir escalabilidad y el rendimiento se hace a través de la agrupación de objetos s. Desafortunadamente, esto requiere un componente de subproceso libre, que es algo que VB6 no puede hacer. Pero ... .NET (cualquier idioma) y C++ pueden.
Lo que hace la agrupación de objetos es decirle a MTS/COM + que cree un conjunto de objetos disponibles, desde un mínimo que se crea cuando se inicia COM +, hasta un máximo (que no sé si es un máximo difícil, o es flexible). Lo que hace la agrupación para usted es proporcionarle a la persona que llama un objeto preinicializado. Esto es mucho más rápido que esperar a que se cree un objeto (especialmente a través de una red). La persona que llama se conecta al objeto, realiza llamadas a métodos y se desconecta. El objeto vuelve a la piscina.
Requiere un cambio fundamental en la arquitectura del programa. Antes de COM +, todos abrirían una conexión a una base de datos y la dejarían abierta mientras dure la aplicación. Esto estuvo bien cuando la población de usuarios era < 100, ya que la carga en el servidor era manejable (cada conexión ocupa RAM). Pero para grandes poblaciones o cantidades desconocidas de usuarios (por ejemplo, usuarios de Internet), el servidor de la base de datos se sobrecarga rápidamente. Alguien se dio cuenta de que cada usuario transaccional estaba haciendo un trabajo real un pequeño porcentaje del tiempo, el resto del tiempo estaban inactivos.
Por lo tanto, sus programas deben hacer una conexión, realizar una solicitud, obtener los resultados y luego desconectarse (esto también se aplica a objetos que no son de base de datos). Esto también implica que la aplicación sea apátrida (el estado del programa no se mantiene entre solicitudes). Porque ... el objeto que estás usando actualmente pertenecía a otra persona hace 200 milisegundos. Y cuando termine de usar el objeto, otro usuario lo usará después de usted. Por lo tanto, los objetos no pueden guardar información; deben ser solo códigos.
regasm - Registra a .net tipos de ensamblaje como COM. Lo que esto significa es que el regasm selecciona los tipos expuestos públicamente de su ensamblado .Net y luego escribe las entradas de registro apropiadas en HKCR ....; (que es la forma en que funciona regsvr32).
- regasm puede generar un archivo de TLB para usted (al igual que Tlbexp.exe)
- regasm puede código base de su ensamblaje .Net. Es decir, si no tiene su ensamblado .Net en el GAC, puede codificar el COM en la ubicación del archivo donde está presente el ensamblado .Net. Y desde aquí el COM Marshaller elegirá ejecutar el ensamblado con CLR.
- regasm le permite crear un archivo .reg haciendo doble clic en el cual puede actualizar las entradas del registro. usted tiene que asegurarse de que el ensamblado de .NET se instala en el GAC becase/interruptor regfile en regasm no le permite a/código base (si lo hace base de código, entonces no tiene sentido)
regsvcs - Crea una aplicación COM + Aplicación desde un ensamblado de .Net. Lo que esto significa es que los regsvcs seleccionan los tipos expuestos públicamente de su ensamblado .Net y además de escribir las entradas de registro apropiadas, también crean una aplicación COM + que puede administrar a través de la consola de Componet Services Manager (% systemroot% \ system32 \ comexp.msc)
regsvcs crea una aplicación COM + en base a la información transmitida a la misma desde la línea de comandos, o en base a la información de la elección entre los DLL .Net.
regsvcs le permite combinar sus tipos COM + a una aplicación COM + existente. Eche un vistazo a comexp.msc para atravesar y comprender una aplicación COM + y COmponets que maneja un COM +.
Si se escribe una clase C# con ComVisible (verdadero) -> Los tipos comunes de esta clase (Foo) está listo para ser registrado con un regasm para COM.
// Set the COM visibility attribute to true
[ComVisibleAttribute(true)]
public class Foo{....}
Si se escribe una clase C# con ComVisible (verdadero), que hereda de System.EnterpriseServices.ServicedComponent (y más ajuste por supuesto ..) -> Esta clase (FooBar) está listo para ser registrado como una aplicación COM +.
// Set the COM visibility attribute to true
[ComVisibleAttribute(true)]
public class FooBar: System.EnterpriseServices.ServicedComponent{.....}
Creando una aplicación COM + desde .Net - Puede comenzar aquí. Recuerde que COM + proporciona administración avanzada de transacciones para un objeto expuesto a COM.
http://support.microsoft.com/kb/306296 http://my.execpc.com/~gopalan/dotnet/complus/complus.net_accountmanager.html http://www.codeproject.com/Articles/3845/Creating-COM-Objects-using-EnterpriseServices-in-N
- 1. Cómo anular el registro de la asamblea registrado utilizando regasm
- 2. interoperabilidad COM sin regasm
- 3. C# COM DLL: ¿uso Regasm o Regsvr32?
- 4. regasm RA0000: No se registraron tipos
- 5. ¿Puedo ejecutar RegAsm sin ser administrador?
- 6. ¿Cómo funciona .NET/COM con múltiples versiones registradas a través de Regasm?
- 7. ¿Por qué exactamente el regasm me advierte sobre la firma con un nombre fuerte?
- 8. Registro distribuido con JMS y logback
- 9. Cómo insertar un registro con LINQ y C# y devolver la clave principal de ese registro
- 10. ¿Qué hace realmente RegAsm? ¿Dónde se copian los archivos?
- 11. Cómo registrar un CCW .NET con regasm desde un proyecto de instalación de Visual Studio 2008
- 12. Registro distribuido con canal
- 13. Registro Log4net y Unity
- 14. MSMQ y registro
- 15. Registro de un objeto COM creado con VS C# 2010
- 16. Instalaciones de registro y Qt
- 17. Registro Django y múltiples perfiles
- 18. Módulos y campos de registro
- 19. rieles HABTM y la búsqueda de registro con ninguna asociación
- 20. registro y uso de un registrador con Unity en global.asax
- 21. diferentes perfiles de usuario con Django Django y perfiles registro
- 22. Autenticación OpenId y registro automático con Spring Security 3.0.2
- 23. ¿Cuál es el problema con las DLL y el Registro?
- 24. suplantación y Acceso CurrentUser Registro
- 25. RegAsm regfile switch no da la misma salida que Codebase Switch
- 26. Problemas de registro con Resque
- 27. Registro Com y dll manifiestos
- 28. Registro y filtrado utilizando log4cxx
- 29. Registro, StreamHandler y transmisiones estándar
- 30. TimedRotatingFileHandler registro con un logging.config
Esta es la mejor descripción de la diferencia entre '' regasm' y regsvcs'. ¡Gracias por eso! :) –