在Windows应用程序设置中从本地计算机将文件复制到服务器计算机时出错

时间:2014-02-14 05:55:24

标签: .net io installation file-copying

我正在开发一个应用程序,其中.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);

在上面的代码中我得到了Access Denied!错误,这是因为我可能无法完全访问该文件夹。所以我首先通过以下代码更改了该文件夹的访问权限:

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进行调试,那么它的工作正常,但是当我创建该应用程序的设置时,我就会遇到异常。

0 个答案:

没有答案