none
Silverlinght 4: Operation not permitted in IsolatedStorage RRS feed

  • Pregunta

  • Environment:


    Windows 7. VS2010 Release Candidate. Silverlight 4 (Framework 4.0). programming language: VB.Net.

    Code:

    Try
                Using isoStore As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()

                    Dim writer As New StreamWriter(New IsolatedStorageFileStream("elemento.xml", FileMode.CreateNew, isoStore))
                    writer.Close()

                End Using

            Catch Ex As IsolatedStorageException
                Er(Ex)
            End Try

        End Sub

     

    The error can be security on the folder but how to change codes in Silverlight 4?

    martes, 30 de marzo de 2010 9:18

Respuestas

  • ¡Buenas tardes!

    He probado el proyecto en otro ordenador con la salvedad que el primero era un windows 7 a 64 con firefox y este otro es un windows 7 a 32 con ie8. Después de tenerle que instalarle todo me he llevado la grata sorpresa de que funcionaba. Asi que he vuelto al origen y he puesto el ie8 como explorador de internet predeterminado.

    A la conclusión que he llegado es que en el firefox no corre. Da el error comentado al principio. Sin embargo sobre el ie8 si que lo hace.

    Por de pronto seguiré probando la aplicación en el IE8. Gracias David por tu ayuda.

    Un abrazo

    • Marcado como respuesta CorsarioVasco miércoles, 7 de abril de 2010 17:52
    miércoles, 7 de abril de 2010 17:43

Todas las respuestas

  • Hello CorsarioVasco.
    Do you speak English or Spanish?

    I respond in both 

    English:
    The path you can see it by inserting a breakpoint in the line 'writer.Close ()' and looking at the private variables 'isoStore' in each OS is different, I have not tested with Windows 7, but I suppose it will be like in Windows Vista..
    on the next page are the paths the Isolated storage for all OS:

    http://msdn.microsoft.com/en-us/library/3ak841sy.aspx

    however, I have done some testing and it is very possible that this error when creating a new file, because if you create a file and it exists, skip a mistake, so you can try the following flag: 'System.IO. FileMode.OpenOrCreate 'instead of' System.IO.FileMode.CreateNew '.

    So would get something like this:

    Dim writer As New StreamWriter(New IsolatedStorageFileStream("elemento.xml", FileMode.OpenOrCreate, isoStore))

    Initially, the isolated storage must have permissions, since it is based on the security system.

    Try this and tell me last.

     

    Spanish:

    La ruta la puedes ver insertando un breakpoint en la linea 'writer.Close()' y mirando las variables privadas de 'isoStore', en cada SO es diferente, no lo he probado con el Windows 7, pero supongo que sera como en Windows Vista.

    en la siguiente pagina estan las rutas de todos los SO, pero de Windows 7 no:

    http://msdn.microsoft.com/en-us/library/3ak841sy.aspx

    no obstante, he realizado alguna prueba y es muy posible que el error este al crear el nuevo archivo, ya que si creas un archivo y este existe, salta un error, de modo que puedes probar con el siguiente flag: 'System.IO.FileMode.OpenOrCreate' en lugar de 'System.IO.FileMode.CreateNew'.

    Asi se quedaria algo como esto:

    Dim writer As New StreamWriter(New IsolatedStorageFileStream("elemento.xml", FileMode.OpenOrCreate, isoStore))

    En un principio, el almacenamiento aislado se debe tener permisos, ya que se basa en ese sistema de seguridad.

    Prueba esto ultimo y me cuentas.


    Saludos
    David González
    miércoles, 31 de marzo de 2010 11:45
  • ¡Buenos días David!

    Gracias por tomarte la molestía de responderme en Ingles y en Español (Soy de San Sebastián) ;-). Acostumbrado a andar consultando los foros en Ingles se me pasó que este era en Español. Siento haberte dado trabajo ;-)

    Centrandonos en el tema. Las rutas de todos los SO ya las había visto (C:\Users\[UserName]\AppData\LocalLow\Microsoft\Silverlight\is\) por eso creo que es un problema de seguridad pero desconozco que debo de hacer para subsanarlo. He intentado trabajar por código con los permisos y el emsamblado pero este framework no me lo reconoce o me dice que la clase esta obsoleta al intentar realizar el ejemplo de IsolatedStorage que aparece en los tutoriales de Microsoft (ese que muestra cómo almacenar diferentes jpgs).

    El error me salta en la primera línea de código:  Using isoStore As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()

    No llego ni a crear la variable writer por lo que hemos de descartar que sea porque el archivo ya esta creado.

    Si se te ocurre cualquier idea para que lo pruebe será bien acogida.

    De todas formas te dejo más datos sobre el error:

    {System.IO.IsolatedStorage.IsolatedStorageException: Operación no permitida." & vbCrLf & "   en System.IO.IsolatedStorage.IsolatedStorageSecurityState.EnsureState()" & vbCrLf & "   en System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication()" & vbCrLf & "   en MvIbrations.cCrearXml..ctor(XDocument categoriesXML)}

    StackTrace:

       en System.IO.IsolatedStorage.IsolatedStorageSecurityState.EnsureState()
       en System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication()
       en MvIbrations.cCrearXml..ctor(XDocument categoriesXML)

    Muchas gracias ;-)

    miércoles, 31 de marzo de 2010 12:17
  • Hola CorsarioVasco.

    El trabajo casi ha sido el mismo gracias a los traductores actuales y de paso me ayuda con mi ingles (tan necesario en nuestra profesion).

    Ahora mismo no tengo un pc con Windows 7, a ver si lo puedo probar mas tarde y comprobarlo.

    Pero de momento te puedo comentar un par de problemas de indole parecida que he tenido con Vista.

    Al hacer uso de ciertas funcionalidades como escritura de archivos y drag and drop o bien no ha funcionado o me han dado errores, pero descubri que solo era en la depuracion, ya que al ejecutar la aplicacion sin depurar funcionaba correctamente.

    1.- Bien para esto hay veces que tengo que implementar un archivo de manifiesto dando permisos a la aplicacion para el UAC, puedes verlo en el siguiente link:

    http://www.professionalvisualstudio.com/blog/2007/10/05/enabling-your-application-for-uac-on-vista/

    no obstante para silverlight, esto no es valido.

    2.- La otra opcion es que ejecutes Visual studio como administrador, esto hara que tengas mayores privilegios para la depuracion.

     

    Estas 2 opciones pueden funcionar cuando la aplicacion funciona bien ejecutandola, pero cuando la estas depurando falla.


    Saludos
    David González
    miércoles, 31 de marzo de 2010 15:08
  • ¡Hola campeón!

    He estado probando lo que me comentaste:

    1.- He ejecutado la aplicación sin depurar y no ha avido éxito.

    2.- El Link que me has pasado del archivo manifiesto es muy bueno. Lo he trasladado al manifiesto de Silverlight en VS2010, el tema de la seguridades, pero sin éxito. Deja a la aplicación frita en al 100 % y sin cargar. Luego estuve jugando con él un poco eliminandolo de la aplicación y se quedo también frita.

    3.- También ejecuto la aplicación como administrador y nada de nada. Aunque he leido por ahí que a partir de la versión VS2008 no existen los problemas aquellos que daba 2005.

    Tengo que probar a ejecutar el código en otro ordenador con windows 7. Lo haré esta tarde y te comento.

    Que tengas un buen día. Un saludo.

    jueves, 1 de abril de 2010 8:39
  • ¡Buenas tardes!

    He probado el proyecto en otro ordenador con la salvedad que el primero era un windows 7 a 64 con firefox y este otro es un windows 7 a 32 con ie8. Después de tenerle que instalarle todo me he llevado la grata sorpresa de que funcionaba. Asi que he vuelto al origen y he puesto el ie8 como explorador de internet predeterminado.

    A la conclusión que he llegado es que en el firefox no corre. Da el error comentado al principio. Sin embargo sobre el ie8 si que lo hace.

    Por de pronto seguiré probando la aplicación en el IE8. Gracias David por tu ayuda.

    Un abrazo

    • Marcado como respuesta CorsarioVasco miércoles, 7 de abril de 2010 17:52
    miércoles, 7 de abril de 2010 17:43