子线程写入权限的问题 我在程序中使用了多线程技术,定时执行一段代码,代码中包含了对文件夹及文件的创建以及写入操作,但是运行的时候出现错误:对路径“f:\xxx\xxx\web\DownloadData\2010\5”的访问被拒绝。不使用多线程做这些操作是没问题的,本地测试也没问题,就是传到虚拟主机空间上出现此错误,请高手们帮忙解答一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 "不使用多线程做这些操作是没问题的,本地测试也没问题,就是传到虚拟主机空间上出现此错误,请高手们帮忙解答一下"1.你仔细看看你的多线程对同一个文件是如何操作的,应该要使用锁(不能同时多个线程对同一文件进行处理的)2.你再试试用自己的IIS或是其他的Web Server去测试一下是否可以。 我本地测没问题的,多线程操作代码如下: public class DownloadTask { private static readonly DownloadTask _ScheduledTask = null; private Timer UpdateTimer = null; private int Interval = 5 * 60000; private int _IsRunning; static DownloadTask() { _ScheduledTask = new DownloadTask(); } public static DownloadTask Instance() { return _ScheduledTask; } public void SetInterval(int interval) { this.Interval = interval; } public void Start() { if (UpdateTimer == null) { UpdateTimer = new Timer(new TimerCallback(UpdateTimerCallback), null, Interval, Interval); } } private void UpdateTimerCallback(object sender) { if (Interlocked.Exchange(ref _IsRunning, 1) == 0) { try { Download.Start(); } finally { Interlocked.Exchange(ref _IsRunning, 0); } } } public void Stop() { if (UpdateTimer != null) { UpdateTimer.Dispose(); UpdateTimer = null; } } } 虚拟空间主机中执行你程序的 IIS 帐号对这个目录没有写入的权限。需要调整 Windows 帐号中的用户权限,对指定的文件夹需要写入操作权限。 空间是星外的系统,默认使用asp.net模拟的方式进行身份认证,但是现在已经特例对我的网站目录增加了Network Service的完全控制权,不知道还需要设置哪些权限 添加Authenticated Users的权限 我是添加了everyone解决了问题 如何将自己的电脑架设成服务器供网络上访问? 求救生成解决方案很慢很慢。 如何从已存在文本文件的开始位置写入文本? 本地运行没事,一传到服务器就出错 数据量大,运行速度慢,如何让它快一点儿? 使用vs2005 时遇到的问题,请大侠帮忙!@!! asp.net中,在对数据库进行操作时,如何得到弹出出错的原因,而不是直接在页面上显示?大家请进 请问C#编写的ASP.NET程序页面文件如何无刷新获取codebehind文件的变量值? 如何保持页面的滚动位置?? Duwamish的问题! 如果jquery 的选择器是变量怎么表达 一个项目中到底什么是业务逻辑?小弟求助.
1.你仔细看看你的多线程对同一个文件是如何操作的,应该要使用锁(不能同时多个线程对同一文件进行处理的)
2.你再试试用自己的IIS或是其他的Web Server去测试一下是否可以。
{
private static readonly DownloadTask _ScheduledTask = null;
private Timer UpdateTimer = null;
private int Interval = 5 * 60000;
private int _IsRunning; static DownloadTask()
{
_ScheduledTask = new DownloadTask();
} public static DownloadTask Instance()
{
return _ScheduledTask;
} public void SetInterval(int interval)
{
this.Interval = interval;
} public void Start()
{
if (UpdateTimer == null)
{
UpdateTimer = new Timer(new TimerCallback(UpdateTimerCallback), null, Interval, Interval);
}
} private void UpdateTimerCallback(object sender)
{
if (Interlocked.Exchange(ref _IsRunning, 1) == 0)
{
try
{
Download.Start();
}
finally
{
Interlocked.Exchange(ref _IsRunning, 0);
}
}
} public void Stop()
{
if (UpdateTimer != null)
{
UpdateTimer.Dispose();
UpdateTimer = null;
}
} }
空间是星外的系统,默认使用asp.net模拟的方式进行身份认证,但是现在已经特例对我的网站目录增加了Network Service的完全控制权,不知道还需要设置哪些权限