更改XML文件时接收未经授权的异常

时间:2013-04-15 15:18:04

标签: c# exception

我有一个应用程序,可以在未经授权的异常中更改webconfig中的连接字符串。有没有办法允许访问该文件?谢谢你的帮助。

异常消息:System.UnauthorizedAccessExeption:拒绝访问路径“PATH”。     //文件路径到xml文件

var adminConnectionStringConfig = new FileInfo(e.Data.Details.VSStudio.Solution.FullName).Directory
                                  + @"\Web.Admin\ConnectionStrings.config";

//Method that updates the xml file
private void SetupConnectionStrings(string path, string newDb)
{
    var doc = new XmlDocument();
    doc.Load(path);
    XmlNode node = doc.SelectSingleNode("configuration/connectionStrings");
    for (int i = 0; i < node.ChildNodes.Count; i++)
    {
        if (node.ChildNodes[i].Attributes["name"].Value == "SYS")
        {
            //Get ConnectionString for client project
            var connectionString = node.ChildNodes[i].Attributes["connectionString"].Value;
            // Cut all 
            var dbName = node.ChildNodes[i].Attributes["connectionString"]
                .Value.Substring(connectionString.IndexOf("Catalog="));
            dbName = dbName.Replace("Catalog=", "");
            //Db Name that we will now replace
            dbName = dbName.Substring(0, dbName.IndexOf(";"));
            // System.Diagnostics.Debugger.Launch();
            doc.InnerXml = doc.InnerXml.Replace(dbName, newDb);
            doc.Save(path);
            break;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以采取一些步骤。

首先,我确保您的XML文件不是只读的。

如果这不起作用,那么您可以以管理员身份运行项目。如果你不是管理员,有些目录不允许你修改Windows。

如果您右键单击visual studio,然后选择run as administrator,那么它将自动以管理员身份调试您的项目。