繁体   English   中英

使用C#更新另一台计算机(共享文件夹/网络)上的文件(web.config)中的值

[英]update value in file(web.config) present on another machine(shared folder/network) using C#

我可以完全访问另一台机器上存在的文件,当我输入时

\\\\username-txd\\abcFolder\\Configuration\\MediaManagerConfig\\Web.config

在运行命令行中,我能够访问上述文件但是当我尝试更新此特定文件中任何属性的值时,它不允许我更新。

public void updateFileData(string elementKey, string newElementValue)
{
    // xmlDoc.Load("\\vinayb2-txd\\atish\\Configuration\\MediaManagerConfig\\Web.config");
    // var path = System.Web.HttpContext.Current.Server.MapPath(@filename);
    // string serverFilepath= Server.MapPath(@filename);
    // FileStream xmlFile = new FileStream(filename, FileMode.Open,FileAccess.Read, FileShare.Read);
    // xmlDoc.Load(xmlFile);
    // string abc=new Uri(filename).LocalPath;

    xmlDoc.Load(@filename);
    XmlNodeList elementList = xmlDoc.GetElementsByTagName("add");

    for (int i = 0; i < elementList.Count; i++)
    {
        if (elementList[i].Attributes["key"].Value == elementKey)
        {
            elementList[i].Attributes["value"].Value = newElementValue;
            break;
        }

        xmlDoc.Save(abc);
    }
}

当我将值传递给xmlDoc.Load(@filename);

文件名显示为我想要的传递值。 但是一旦我继续调试代码,我就会看到我的文件路径附加了d:/ value。

然后文件名变成了

filename="D:\\username-txd\abcFolder\Configuration\MediaManagerConfig\Web.config"

为什么D://得到追加,它是指我的本地D盘吗?

注释行是我尝试的一些选项。

我想你需要在主机名之前添加一对额外的反斜杠。 不是\\\\hostname而是\\\\\\\\hostname

所以在你的情况下\\\\\\\\vinayb2-txd\\\\atish\\\\Configuration\\\\MediaManagerConfig\\\\Web.config应该可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM