Problema de Permisos (supongo...)

18/09/2006 - 18:11 por Consuelo | Informe spam
Hola,
Espero que podáis ayudarme a encontrar una pista que me ayude a solucionar
un problemilla que empieza a desesperarme...

He hecho una aplicación con Visual Studio .NET 2005 en VB. Esta aplicación
debe estar en un ordenador de la Intranet y poder ejecutarse desde cualquier
otro de la red (dando por supuesto que ese otro ordenador tiene las
librerías y el entorno correcto).

He hecho pruebas en el ordenador de desarrollo y funciona perfectamente,
pero cuando intento ejecutarlo desde otro ordenador, me da este error nada
más empezar:

"Error al crear el formulario. Consulte Exception.InnerException para
obtener más detalles. Error: Error de solicitud de permiso de tipo
'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Por si era un problema de que faltaban librerías, he copiado el ejecutable
en el otro ordenador y para mi sorpresa funcionaba correctamente !! pero si
intento ejecutar ese fichero desde el ordenador de desarrollo vuelve a
aparecer el mismo error.
resumiendo pues no sé si me ha quedado muy liado:

Tengo un ejecutable que solo puedo ejecutar en local, si intento ejecutarlo
desde otro ordenador se produce el error. (tengo permisos de administrador
en ambos ordenadores, eso no es el problema)

He probado a tocar permisos de ejecución del ordenador, pero tal vez no he
sabido encontrar el lugar adecuado

¿Puede alguien darme una pista?

Gracias!

Consuelo

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
18/09/2006 - 18:30 | Informe spam
"Consuelo" wrote in message
news:
[...] aplicacion debe estar en un ordenador de la Intranet
y poder ejecutarse desde cualquier otro de la red
[...] Error de solicitud de permiso de tipo
'System.Security.Permissions.FileIOPermission,
[...]
He probado a tocar permisos de ejecución del ordenador, pero tal vez no he
sabido encontrar el lugar adecuado

¿Puede alguien darme una pista?



Pista: Panel de control -> Herramientas Administrativas -> Asistentes de
.Net Framework -> Confiar en un Ensamblado.


Los permisos que tienes que tocar son los de .Net. Por defecto están
restringidísimos para los ejecutables que se descargan desde un ordenador de
la red, y son ilimitados si el ejecutable está en la máquina local. En el
panel de control tienes una herramienta administrativa para modificar los
permisos manualmente, además del asistente que te he indicado.
Respuesta Responder a este mensaje
#2 Consuelo
19/09/2006 - 10:37 | Informe spam
En primer lugar, gracias por tu rápida respuesta, pero lamentablemente no
creo que mi problema deba estar en los permisos de ejecución de Windows. He
tenido toda la noche para pensar en el problema y se me han planteado nuevas
dudas, voy a intentar ponerlas aquí por si alguien puede ayudarme a
solucionarlas.

Yo hace ya bastantes años que programo en VB 6.0 y este programa es mi
primera incursión en .NET, pasando directamente al 2005.
En VB he hecho programas que sin problemas se ejecutan en cualquier
ordenador de la red (siempre que ese ordenador tenga lo necesario) sin
problemas de permisos y ahora me encuentro con que mi flamante programa
VB.NET, que básicamente utiliza los mismos recursos que otro de mis
programas en VB no puede ejecutarse desde otro ordenador.
Hasta donde llegan mis conocimientos, el tema de los permisos es algo
gestionado por el sistema operativo (la respuesta de Alberto sugiere cambios
en Windows) y yo estoy utilizando los mismos ordenadores con los mismos
sistemas operativos en los que el programa VB funciona y el VB.NET no.
Por lo que debe haber algo que VB.NET pone en el programa y que causa estos
problemas, y mi gran duda es que no sé qué es ese añadido ni como se puede
eliminar. Tal vez sea alguna opción del entorno de desarrollo que activé por
error... no lo sé y no sé por dónde seguir buscando... ¿alguna sugerencia?

Gracias otra vez

Consuelo




"Alberto Poblacion"
escribió en el mensaje news:eCrjA$
"Consuelo" wrote in message
news:
[...] aplicacion debe estar en un ordenador de la Intranet
y poder ejecutarse desde cualquier otro de la red
[...] Error de solicitud de permiso de tipo
'System.Security.Permissions.FileIOPermission,
[...]
He probado a tocar permisos de ejecución del ordenador, pero tal vez no
he sabido encontrar el lugar adecuado

¿Puede alguien darme una pista?



Pista: Panel de control -> Herramientas Administrativas -> Asistentes
de .Net Framework -> Confiar en un Ensamblado.


Los permisos que tienes que tocar son los de .Net. Por defecto están
restringidísimos para los ejecutables que se descargan desde un ordenador
de la red, y son ilimitados si el ejecutable está en la máquina local. En
el panel de control tienes una herramienta administrativa para modificar
los permisos manualmente, además del asistente que te he indicado.


Respuesta Responder a este mensaje
#3 aydai
19/09/2006 - 11:30 | Informe spam
Alberto tiene razon Consuelo, es un problema de la configuracion del
Framework de tus ordenadores clientes, el framework gestiona la seguridad de
los programas que se ejecutan en la maquina. Y por defecto no deja que se
ejecute nada que no sea en modo local.

Haz caso a alberto y cambia la configuracion. El unico problema que hay es
que asi como el framework 1.0 y 1.1 si que te instalaban una aplicacion muy
sencilla para modificar la seguridad, el framework 2.0 no lo hace. Por lo
que tienes dos opciones:

1.- Instalar la version SDK del framework 2.0, que ocupa bastante mas y si
que te instala esta herramienta.

2.- Utilizar mediante la linea de comandos el comando caspol.exe, que se usa
para modificar la seguridad. Los parametros que has de usar para que la
seguridad de la intranet local sea total es la siguiente:

caspol.exe -q -machine -chggroup LocalIntranet_Zone FullTrust
Si tienes alguna duda me lo comentas



"Consuelo" escribió en el mensaje
news:
En primer lugar, gracias por tu rápida respuesta, pero lamentablemente no
creo que mi problema deba estar en los permisos de ejecución de Windows.
He tenido toda la noche para pensar en el problema y se me han planteado
nuevas dudas, voy a intentar ponerlas aquí por si alguien puede ayudarme a
solucionarlas.

Yo hace ya bastantes años que programo en VB 6.0 y este programa es mi
primera incursión en .NET, pasando directamente al 2005.
En VB he hecho programas que sin problemas se ejecutan en cualquier
ordenador de la red (siempre que ese ordenador tenga lo necesario) sin
problemas de permisos y ahora me encuentro con que mi flamante programa
VB.NET, que básicamente utiliza los mismos recursos que otro de mis
programas en VB no puede ejecutarse desde otro ordenador.
Hasta donde llegan mis conocimientos, el tema de los permisos es algo
gestionado por el sistema operativo (la respuesta de Alberto sugiere
cambios en Windows) y yo estoy utilizando los mismos ordenadores con los
mismos sistemas operativos en los que el programa VB funciona y el VB.NET
no.
Por lo que debe haber algo que VB.NET pone en el programa y que causa
estos problemas, y mi gran duda es que no sé qué es ese añadido ni como se
puede eliminar. Tal vez sea alguna opción del entorno de desarrollo que
activé por error... no lo sé y no sé por dónde seguir buscando... ¿alguna
sugerencia?

Gracias otra vez

Consuelo




"Alberto Poblacion"
escribió en el mensaje news:eCrjA$
"Consuelo" wrote in message
news:
[...] aplicacion debe estar en un ordenador de la Intranet
y poder ejecutarse desde cualquier otro de la red
[...] Error de solicitud de permiso de tipo
'System.Security.Permissions.FileIOPermission,
[...]
He probado a tocar permisos de ejecución del ordenador, pero tal vez no
he sabido encontrar el lugar adecuado

¿Puede alguien darme una pista?



Pista: Panel de control -> Herramientas Administrativas -> Asistentes
de .Net Framework -> Confiar en un Ensamblado.


Los permisos que tienes que tocar son los de .Net. Por defecto están
restringidísimos para los ejecutables que se descargan desde un ordenador
de la red, y son ilimitados si el ejecutable está en la máquina local. En
el panel de control tienes una herramienta administrativa para modificar
los permisos manualmente, además del asistente que te he indicado.






Respuesta Responder a este mensaje
#4 Consuelo
19/09/2006 - 11:52 | Informe spam
Ya, sí que entiendo lo de modificar el framework, y ya vi ayer que el 2.0 no
tiene el asistente que tenía el 1.1, pero mi problema es que por motivos de
política de empresa, debe existir una única copia del ejecutable de mi
aplicación en un único ordenador y todos los que quieran utilizarlo deben
acceder a ese ordenador.
Esto ya está funcionando así para una aplicación anterior hecha por mí en
VB6 que básicamente accede a las mismas cosas (una base de datos SqlServer)
y más de 50 personas acceden sin problemas.
Si yo le digo a mi jefe que por haberme pasado a VB.NET 2005 debo tocar la
configuración de todos los ordenadores que quieran utilizar el nuevo
programa, me va a decir que vuelva a VB6 y me olvide de estas modernidades
que solo aportan problemas... y la verdad es que no sé que argumentos
darle... Pues yo misma no entiendo qué es lo que hace que ahora se necesiten
permisos explícitos y antes no...
...Empiezo a estar desesperada...
Gracias por intentarlo

Consuelo


"" escribió en el mensaje
news:%
Alberto tiene razon Consuelo, es un problema de la configuracion del
Framework de tus ordenadores clientes, el framework gestiona la seguridad
de los programas que se ejecutan en la maquina. Y por defecto no deja que
se ejecute nada que no sea en modo local.

Haz caso a alberto y cambia la configuracion. El unico problema que hay es
que asi como el framework 1.0 y 1.1 si que te instalaban una aplicacion
muy sencilla para modificar la seguridad, el framework 2.0 no lo hace. Por
lo que tienes dos opciones:

1.- Instalar la version SDK del framework 2.0, que ocupa bastante mas y si
que te instala esta herramienta.

2.- Utilizar mediante la linea de comandos el comando caspol.exe, que se
usa para modificar la seguridad. Los parametros que has de usar para que
la seguridad de la intranet local sea total es la siguiente:

caspol.exe -q -machine -chggroup LocalIntranet_Zone FullTrust
Si tienes alguna duda me lo comentas



"Consuelo" escribió en el mensaje
news:
En primer lugar, gracias por tu rápida respuesta, pero lamentablemente no
creo que mi problema deba estar en los permisos de ejecución de Windows.
He tenido toda la noche para pensar en el problema y se me han planteado
nuevas dudas, voy a intentar ponerlas aquí por si alguien puede ayudarme
a solucionarlas.

Yo hace ya bastantes años que programo en VB 6.0 y este programa es mi
primera incursión en .NET, pasando directamente al 2005.
En VB he hecho programas que sin problemas se ejecutan en cualquier
ordenador de la red (siempre que ese ordenador tenga lo necesario) sin
problemas de permisos y ahora me encuentro con que mi flamante programa
VB.NET, que básicamente utiliza los mismos recursos que otro de mis
programas en VB no puede ejecutarse desde otro ordenador.
Hasta donde llegan mis conocimientos, el tema de los permisos es algo
gestionado por el sistema operativo (la respuesta de Alberto sugiere
cambios en Windows) y yo estoy utilizando los mismos ordenadores con los
mismos sistemas operativos en los que el programa VB funciona y el VB.NET
no.
Por lo que debe haber algo que VB.NET pone en el programa y que causa
estos problemas, y mi gran duda es que no sé qué es ese añadido ni como
se puede eliminar. Tal vez sea alguna opción del entorno de desarrollo
que activé por error... no lo sé y no sé por dónde seguir buscando...
¿alguna sugerencia?

Gracias otra vez

Consuelo




"Alberto Poblacion"
escribió en el mensaje news:eCrjA$
"Consuelo" wrote in message
news:
[...] aplicacion debe estar en un ordenador de la Intranet
y poder ejecutarse desde cualquier otro de la red
[...] Error de solicitud de permiso de tipo
'System.Security.Permissions.FileIOPermission,
[...]
He probado a tocar permisos de ejecución del ordenador, pero tal vez no
he sabido encontrar el lugar adecuado

¿Puede alguien darme una pista?



Pista: Panel de control -> Herramientas Administrativas -> Asistentes
de .Net Framework -> Confiar en un Ensamblado.


Los permisos que tienes que tocar son los de .Net. Por defecto están
restringidísimos para los ejecutables que se descargan desde un
ordenador de la red, y son ilimitados si el ejecutable está en la
máquina local. En el panel de control tienes una herramienta
administrativa para modificar los permisos manualmente, además del
asistente que te he indicado.










Respuesta Responder a este mensaje
#5 Alberto Poblacion
19/09/2006 - 12:12 | Informe spam
"Consuelo" wrote in message
news:
Ya, sí que entiendo lo de modificar el framework, y ya vi ayer que el 2.0
no tiene el asistente que tenía el 1.1, pero mi problema es que por
motivos de política de empresa, debe existir una única copia del
ejecutable de mi aplicación en un único ordenador y todos los que quieran
utilizarlo deben acceder a ese ordenador.
Esto ya está funcionando así para una aplicación anterior hecha por mí en
VB6 que básicamente accede a las mismas cosas (una base de datos
SqlServer) y más de 50 personas acceden sin problemas.
Si yo le digo a mi jefe que por haberme pasado a VB.NET 2005 debo tocar la
configuración de todos los ordenadores que quieran utilizar el nuevo
programa, me va a decir que vuelva a VB6 y me olvide de estas modernidades
que solo aportan problemas... y la verdad es que no sé que argumentos
darle... Pues yo misma no entiendo qué es lo que hace que ahora se
necesiten permisos explícitos y antes no...
...Empiezo a estar desesperada...




Es un tema de seguridad. Antiguamente, si accidentalmente hacías
"click" sobre un .EXE de VB que estaba en cualquier máquina de tu red, ya
estabas perdida: El EXE se ponía a ajecutarse en tu ordenador y podía hacer
absolutamente de todo con él, incluyendo instalar virus, spyware,
reconfigurar el sistema operativo, etc.
Con .Net, Microsoft decidió embeber en la propia maquinaria de .Net una
serie de controles, de forma que un programa escrito en .Net no pueda hacer
"de todo" en una máquina, sino solo aquellas cosas que permita la política
de la empresa. Con .Net viene un editor de políticas que permite decir qué
cosas pueden hacer los ejecutables dependiendo de dónde vengan. Por ejemplo,
si tienes un servidor donde están los ejecutables que deben ejecutar todos
los puestos de la empresa, y el servidor es "de confianza" (nadie instala
ahi nada que no deba), entonces puedes conceder en .Net permisos explícitos
diciendo que todo el software que venga de ese servidor reciba "full trust"
(todos los permisos). Por desgracia, esta operación (decirle a .Net que tal
servidor es de confianza) debe repetirse en cada puesto que deba confiar en
ese servidor, pero esto solo hay que hacerlo una vez, y a partir de ese
momento puedes poner en el servidor todos los ejecutables que quieras y
todos los puestos podrán ejecutarlos sin problemas. Lo más fácil es que
hagas un fichero de comandos con una sentencia CASPOL similar a la que te
han indicado en otro mensaje, y ejecutar ese fichero en cada uno de los
puestos. Esto solo hay que hacerlo una vez, y a partir de ese momento todo
funcionará como deseas.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida