Ошибка при копировании файла на сервер с локального компьютера в настройках приложения Windows
Я разрабатываю приложение, в котором файл.mdf должен быть скопирован на сервер, на котором установлен сервер MSSQL.
Код:
// for simplicity here i just put the hard coded server path in actual application i getting that programmatically.
string serverPath = "\\\\serverName\\C$\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data";
byte[] buff = null;
buff = Properties.Resources.SomeResourceFile1;
File.WriteAllBytes(serverPath + "\\" + mdfNewFileName, buff);
buff = null;
buff = Properties.Resources.SomeResourceFile2;
File.WriteAllBytes(serverPath + "\\" + ldfNewFileName, buff);
В приведенном выше коде я получаю доступ запрещен! ошибка, это из-за того, что у меня может быть не полный доступ к этой папке. Так что сначала я изменил доступ к этой папке с помощью следующего кода:
DirectorySecurity sec = Directory.GetAccessControl(serverPath);
SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
sec.AddAccessRule(new FileSystemAccessRule(everyone, FileSystemRights.Modify | FileSystemRights.Synchronize, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow));
Directory.SetAccessControl(serverPath, sec);
Теперь я получаю "исключение несанкционированной операции".
Вышеупомянутые оба исключения происходят только из-за настройки приложения, если я отлаживаюсь с VS2010, то он работает нормально, но когда я создаю настройку этого приложения, я получаю это исключение.