none
IsolatedStorage with Roaming which is redirected through "Group Policy Management" AppData folder on "Active Directory Domain" server. RRS feed

  • Question

  • Hi all! 
    Theory: 
    Windows support two types of path:

    1) Local File System (LFS) path, such as "C:\Folder\Folder" 
    and Uniform Naming Convention (UNC), \\<some server name>\SharedFolde\Folder
    which we use to type some folder in network.

    2) Long path which typed such as: "\\?\C:\Folder\Folder" or for 
    network "\\?\UNC\<some server name>\SharedFolde\Folder".

    IsolatedStorages in .NET 4.0 use long path, but not correct (.NET 3.5 use not long LFS and UNC).
    When it created some folder, or even check folder exist, it add to roaming path for example "C:\Users\<username>\AppData\Roaming"
    prefix "\\?\", and it work fine with local paths, but for network path it not enough because long network path must be such as
    second type which I described upper. For work with folders, IsolatedStorege use Win32 functions which with path "\\?\\\<some server name>\Users\<user name>\AppData\Roaming" 
    (must be "\\?\UNC\<some server name>\Users\<user name>\AppData\Roaming") raising 123 error (The filename, directory name, or volume label syntax is incorrect.)
    and our application fall down with managed IsolatedStorageException "Initialization failed.".

    For reproducing:
    1) Installing Active Directory on Windows Server 2008: http://www.petri.co.il/installing-active-directory-windows-server-2008.htm
    2) Configure folder redirection (may be configured only for "AppData(Roaming)"): http://www.omegaits.net/articles/configuring-folder-redirection-in-windows-server-2008-r2
    3) Connect client computer to created and configured active domain server: http://windows.microsoft.com/en-US/windows-vista/Connect-your-computer-to-a-domain
    4) Login to client and run this code:

    using (IsolatedStorageFile file = IsolatedStorageFile.GetStore(IsolatedStorageScope.Assembly | IsolatedStorageScope.Roaming | IsolatedStorageScope.User, null, null))
                {
                    using (IsolatedStorageFileStream fs = new IsolatedStorageFileStream("test.txt", System.IO.FileMode.OpenOrCreate, file))
                    {
                        using (StreamWriter sw = new StreamWriter(fs))
                        {
                            sw.WriteLine("test test");
                        }
                    }
                }

    Workaround: 
    map network drive on client, and redirect AppData folder to this mapped drive.

    Maybe any one have more ideas how solve this problem?

    Tuesday, February 19, 2013 2:44 PM

Answers

  • Thank for help, but this not help to us. 

    I understand that become that time.... and submitted this bug: https://connect.microsoft.com/VisualStudio/feedback/details/780227/isolatedstorage-with-roaming-which-is-redirected-through-group-policy-management-appdata-folder-on-active-directory-domain-server

    Thank all for help!

     
    Thursday, February 28, 2013 3:40 PM

All replies