首页 新闻 会员 周边

C#文件上传和读取xml资源被占用问题

0
悬赏园豆:50 [已解决问题] 解决于 2017-04-07 15:36

winfrom程序做的多文件上传到服务器,上传成功后读取本地刚上传过的xml文件获取节点属性值加到数据库,多次执行这个操作的话报资源被占用的错误,怎么确定谁占用的资源以及资源被占用的解决方案。

Like金的主页 Like金 | 初学一级 | 园豆:42
提问于:2017-04-06 15:29
< >
分享
最佳答案
0

自己解决了,谢谢大家。

Like金 | 初学一级 |园豆:42 | 2017-04-07 09:25
其他回答(2)
0

 1.资源释放了没

 2.操作是否过于频繁

收获园豆:25
codingHeart | 园豆:1511 (小虾三级) | 2017-04-06 15:44

你说的资源释放是读取xml还是上传文件?

支持(0) 反对(0) Like金 | 园豆:42 (初学一级) | 2017-04-06 15:47

@Like金: 读取

支持(0) 反对(0) codingHeart | 园豆:1511 (小虾三级) | 2017-04-06 15:53

@codingHeart: using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                            {
                                XmlDocument xx = new XmlDocument();
                                xx.Load(path);
                                XmlNodeList xxList = xx.GetElementsByTagName("ComposeGroup");
                                foreach (XmlNode xxNode in xxList)
                                {
                                    composeGroup_Name = xxNode.Attributes["Name"].Value;//获取ComposeGroup节点下的Name属性值
                                }
                                xx.RemoveAll();
                                xx = null;
                            }

 

 

 

我是这样写的  貌似不管用

支持(0) 反对(0) Like金 | 园豆:42 (初学一级) | 2017-04-06 15:55

@Like金: 调试过吗,异常的地方在哪

支持(0) 反对(0) codingHeart | 园豆:1511 (小虾三级) | 2017-04-06 16:01

@codingHeart: 异常在文件上传的时候根据文件路径获取文件的byte[]方法里

支持(0) 反对(0) Like金 | 园豆:42 (初学一级) | 2017-04-06 16:03

@codingHeart: mlDocument xx = new XmlDocument();
                                xx.Load(path);
                                XmlNodeList xxList = xx.GetElementsByTagName("ComposeGroup");
                                foreach (XmlNode xxNode in xxList)
                                {
                                    composeGroup_Name = xxNode.Attributes["Name"].Value;//获取ComposeGroup节点下的Name属性值
                                }
                                xx.RemoveAll();
                                xx = null;

 

这段代码 外面加using(){}该怎么写啊?我写的好像不对

支持(0) 反对(0) Like金 | 园豆:42 (初学一级) | 2017-04-06 16:16

@Like金: 这段代码都可以不用using

支持(0) 反对(0) codingHeart | 园豆:1511 (小虾三级) | 2017-04-06 16:24

@Like金: xmldocument是引用类型,它的内存分配在托管堆上,属于托管资源,会由gc自动回收垃圾并释放资源。不需要加using去释放资源。FileSteam是属于非托管资源,需要手动利用释放资源或者使用using实现自动释放资源

支持(0) 反对(0) ~扎克伯格 | 园豆:1923 (小虾三级) | 2017-04-06 16:28

@~扎克伯格: 我调试着走就不报错,难道是因为操作太快了?对于操作太快该怎么处理下?

支持(0) 反对(0) Like金 | 园豆:42 (初学一级) | 2017-04-06 16:30

@Like金:问题是,你的异常在文件上传那

支持(0) 反对(0) codingHeart | 园豆:1511 (小虾三级) | 2017-04-06 16:49
0

你可以试试线程

收获园豆:25
~扎克伯格 | 园豆:1923 (小虾三级) | 2017-04-06 16:06

我知道线程,但是不会啊。

支持(0) 反对(0) Like金 | 园豆:42 (初学一级) | 2017-04-06 16:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册