Estoy de regreso, me lastime la cabeza en un juego de futbol, me la pase muy mareado por mas de una semana, pero ya estoy bien
Esta vez fue un control ActiveX (todavia estamos peleando con controles ActiveX), pense que ya habia hecho todo para que funcionara, pero aun asi el #@$^ control simplemente no funcionaba, asi que corri Filemon para ver si el archivo era siquiera accesado, y encontre 2 referencias al archivo, una en el folder del GAC, y otra en program files\internet explorer, pero ninguna referencia a donde yo habia copiado el dll.
Asi que decidi copiar el archivo dll a donde IE lo estaba buscando, lo puse en
c:\program files\Internet Explorer\
y todo empezo a funcionar perfectamente
Talez pude haber registrado el control en el GAC, pero ya estaba muy frustrado (tenia varios dias con este problema) y creo que ya habia tratado antes eso mismo y no me habia funcionado.
pero bueno... pues ahi tienen otro truco mas que pueden intentar cuando ya hallan intentado todo lo demas, usa filemon para ver de que directorio esta tratando IE de cargar tu control, y copialo ahi
y si aun no sabes que es filemon, deberias bajarlo y jugar con el, es una herramienta mas que excelente, y te ahorrara muchos dolores de cabeza (y no precisamente de los causados en juegos de futbol J)
salu2
Showing posts with label activex. Show all posts
Showing posts with label activex. Show all posts
Wednesday, June 06, 2007
Friday, May 18, 2007
control activeX en .NET no funciona bajo https
keywords: .net user control, activex, ocx, IE7, IE, https, http, seguro
Justin y yo tuvimos una semana muy pesada peleandonos con unos controles ActiveX desarrollados en C# y .NET 2.0, asi que vamos a postear algunas de nuestras experiencias con los problemas y soluciones que encontramos (para que podamos recordarlas despues), la prima es sobre controles ActiveX corriendo bajo https.
Desarrollamos el control, todo funcionaba muy bien, uno de nuestros clientes queria ese control en un sitio https, asi que dijimos no hay problema... hasta que tratamos, y tratamos, y tratamos y nada funcionaba, el control simplemente no cargaba correctamente (si cargaba, pero no hacia lo que necesitabamos, esto era aun peor).
La solucion resulto ser algo muy simple (como normalmente es el caso); cuando incluyes un control, normalmente se hace asi:
<object id="someId" classid="SomeDll#Namespace.ClassName"></object>
Esa es la forma en la que lo encuentras en los ejemplos en internet, y funciona muy bien (una vez que pasas todas las demas barreras para hacerlo funcionar) bajo http, pero cuando corres ese mismo sitio bajo https, el control simplemente no funciona.
la solucion?
Cuando creas tu control, le asignas un identificador unico (guid)
[Guid("CAE67AEA-F489-4e52-956B-CCC774F40A3A")]
[ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(IControlEvents))] // --Expose events
[ComVisible(true)]
public partial class MyControl : UserControl...
mas o menos asi...
bien, para hacer que el control funcione en https, simplemente tendras que usar ese GUID, no el nombre de la clase, asi que escribiriamos el codigo html de la siguiente manera
<object id="someId" classid="clsid:CAE67AEA-F489-4e52-956B-CCC774F40A3A"></object>
listo, es todo lo que hay que hacer, espero que les hallamos evitado algunas horas de dolores de cabeza
salu2
Justin y yo tuvimos una semana muy pesada peleandonos con unos controles ActiveX desarrollados en C# y .NET 2.0, asi que vamos a postear algunas de nuestras experiencias con los problemas y soluciones que encontramos (para que podamos recordarlas despues), la prima es sobre controles ActiveX corriendo bajo https.
Desarrollamos el control, todo funcionaba muy bien, uno de nuestros clientes queria ese control en un sitio https, asi que dijimos no hay problema... hasta que tratamos, y tratamos, y tratamos y nada funcionaba, el control simplemente no cargaba correctamente (si cargaba, pero no hacia lo que necesitabamos, esto era aun peor).
La solucion resulto ser algo muy simple (como normalmente es el caso); cuando incluyes un control, normalmente se hace asi:
<object id="someId" classid="SomeDll#Namespace.ClassName"></object>
Esa es la forma en la que lo encuentras en los ejemplos en internet, y funciona muy bien (una vez que pasas todas las demas barreras para hacerlo funcionar) bajo http, pero cuando corres ese mismo sitio bajo https, el control simplemente no funciona.
la solucion?
Cuando creas tu control, le asignas un identificador unico (guid)
[Guid("CAE67AEA-F489-4e52-956B-CCC774F40A3A")]
[ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(IControlEvents))] // --Expose events
[ComVisible(true)]
public partial class MyControl : UserControl...
mas o menos asi...
bien, para hacer que el control funcione en https, simplemente tendras que usar ese GUID, no el nombre de la clase, asi que escribiriamos el codigo html de la siguiente manera
<object id="someId" classid="clsid:CAE67AEA-F489-4e52-956B-CCC774F40A3A"></object>
listo, es todo lo que hay que hacer, espero que les hallamos evitado algunas horas de dolores de cabeza
salu2
Labels:
.net,
activex,
C#,
seguridad .net
Subscribe to:
Posts (Atom)