首页 > 系统相关 >XmlTextReader正由另一进程使用,因此该进程无法访问此文件

XmlTextReader正由另一进程使用,因此该进程无法访问此文件

时间:2023-04-03 11:07:03浏览次数:50  
标签:xml Web String 无法访问 System UI 进程 XMLData XmlTextReader



此处调用报错:

public void setMaxValueByXml(string Jym, string valueMax) 
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath("XMLData.xml"));
        XmlNodeList nodeList = xmlDoc.SelectSingleNode("body").ChildNodes;//获取body节点的所有子节点 

        foreach (XmlNode xn in nodeList)//遍历所有子节点 
        {
            XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型 
            if (xe.GetAttribute("genre") == Jym)//如果genre属性值为“TCM201” 
            {
                xe.SetAttribute("value", valueMax);//则修改该属性valueMax 
                break;
            }
        }
        xmlDoc.Save(Server.MapPath("XMLData.xml"));//保存。
    }





“/webSerZygxm”应用程序中的服务器错误。

文件“...rvices\webSerZygxm\XMLData.xml”正由另一进程使用,因此该进程无法访问此文件。 
  说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

 异常详细信息: System.IO.IOException: 文件“webservices\webSerZygxm\XMLData.xml”正由另一进程使用,因此该进程无法访问此文件。

源错误: 



行 463:            }
行 464:        }
行 465:        xmlDoc.Save(Server.MapPath("XMLData.xml"));//保存。
行 466:        
行 467:        setMaxValueByXml("TCM204", "1");
  

源文件:  ....ices\webSerZygxm\uploadInfo.aspx.cs    行:  465 

堆栈跟踪: 



[IOException: 文件“D:\Mwork\2016-11-04 中医馆项目webservices\webSerZygxm\XMLData.xml”正由另一进程使用,因此该进程无法访问此文件。]
   System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +216
   System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) +1326
   System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) +65
   System.Xml.XmlDocument.Save(String filename) +129
   uploadInfo.Button1_Click(Object sender, EventArgs e) in ......\webSerZygxm\uploadInfo.aspx.cs:465
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9696694
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +204
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1639

XmlTextReader正由另一进程使用,因此该进程无法访问此文件_System

解决方案: 问题不是上面那段代码上. 而在与在此之前我 我先读取了这个XML 但是不是用这种方式如下代码    

public string getMaxValueByXml(string Jym) 
    {
        string resultXml = string.Empty;
        DataSet ds = new DataSet();
        XmlTextReader xmlTextReader = new XmlTextReader(Server.MapPath("XMLData.xml"));
        ds.ReadXml(xmlTextReader);
        if (ds.Tables[0].Rows.Count > 0)
        {
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                if (ds.Tables[0].Rows[i]["genre"].ToString() == Jym) 
                {
                    resultXml = ds.Tables[0].Rows[i]["value"].ToString();
                    break;
                }
            }
        }
        xmlTextReader.Close();//此处当时没写 才导致这个错误
        return resultXml;
    }

XmlTextReader正由另一进程使用,因此该进程无法访问此文件_Web_02


标签:xml,Web,String,无法访问,System,UI,进程,XMLData,XmlTextReader
From: https://blog.51cto.com/u_15999672/6165724

相关文章

  • C#额外管理进程
    1、额外打开进程关闭进程(放在程序打开或者关闭时比如aubdioftp服务)publicstaticvoidStartFtpPress(){stringpath=System.Environment.CurrentDirectory;stringfileName=path+"\\FtpAudio.exe";System.Diagnostics......
  • IIS6 MVC4 路由失效 无法访问
    大致找了网站上IIS6MVC4路由失效文章不少,对症下药的木有啊,折腾了我半个下午。报错内容如下:==========================================“/”应用程序中的服务器错误。无法找到资源。说明:HTTP404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂......
  • Linux系统下进程回收--waitpid函数
    waitpid函数的作用和wait函数的作用相同,只是有些参数不同。在Linux终端下输入命令:man2waitpid查看waitpid函数的具体描述:SYNOPSIS#include<sys/types.h>#include<sys/wait.h>pid_twaitpid(pid_tpid,int*wstatus,intoptions);......
  • 进程和端口
    进程和端口查看命令Linux中的ps命令是**ProcessStatus**的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,**如果想要动态的显示进程信息,就可以使用top命令**。要对进程进行监测和控制,首先必须要了解当......
  • 进程间通讯
    一、关于进程间通讯linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。每个进程都有自己独立的地址空间,当两个不同进程需要进行交互时,就需要使用进程间通讯进程间通讯分为单个计算机的进程间通讯与局域网的计算机的进程间通讯进程间通讯方式有管道,信......
  • 计算机网络学习总结(进程之间的通信)
    进程之间通信的方式之一是利用socket最近学习了计算机网络的一些知识,下面是我自己的一些简单理解,可能有些错误的地方(狗头保命)首先长报文在发送的时候是以分组的形式发送的,由应用层发送应用层报文到运输层然后运输层对接收到的每个分组加上一个运输层首部,然后发送到网络层网络......
  • 进程调度算法
    1、先来先服务FCFS非抢占式,按照请求顺序来进行调度。有利于长作业,不利于短作业,短作业等待时间长。2、最短作业优先非抢占式,按照运行时间最短顺序调度。长作业可能饿死,等待短作业一直得不到运行。3、最短剩余时间优先短作业的抢占式版本,按剩余时间调度。4、时间片轮转按FC......
  • 进程的等待
    关于进程等待在子进程运行结束后,进入僵死状态,并释放资源,子进程在内核中的数据结构依然保留.父进程调用wait()与waitpid()函数等待子进程退出后,释放子进程遗留的资源(taskstruct)wait与waitpidwait函数函数头文件#include<sys/types.h>#include<sys/wait.h>函数......
  • C# 当前进程是否有控制台窗口
    WPF应用程序,在VS的项目属性中,可以设置输出类型:那我们在代码中,如何判断应用的类型呢。有没有控制台?是否Windows应用程序还是控制台应用程序?Kernel32下函数GetConsoleWindow可以解决这个问题:[DllImport("kernel32.dll")]privatestaticexternIntPtrGetConsoleWindow();1......
  • Linux系统下进程回收--wait()函数
    进程回收在每个进程退出的时候,内核释放该进程所有资源‘包括打开的文件、占用的内存等。但是仍然会保存一定的信息,这些信息主要是进程控制块PCB的信息(包括进程号、退出状态、运行时间等)。父进程可以调用wait()或waitpid()函数得到它的退出状态,同时彻底清除这个进程。wait()......