0

我有一个应用程序可以在未经授权的异常中更改 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;
        }
    }
}
4

1 回答 1

1

您可以采取一些步骤。

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

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

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

于 2013-04-15T16:22:03.590 回答