再次提问:对路径“E:\我的文档\Visual Studio 2005\WebSites\Search\crawled\segments”的访问被拒绝
说明:segments目录已经添加了isur_,network service,aspnet,everyone用户完全控制权限,还是报错。
请问一下我这个最可能是哪里的设置问题,急判高手帮忙解决。如果有需要源码调试的请与我联系,谢谢。QQ:34508447
debug错误:
public Descriptor(FSIndexInput enclosingInstance, System.IO.FileInfo file, System.IO.FileAccess mode)
: base(new System.IO.FileStream(file.FullName, System.IO.FileMode.Open, mode, System.IO.FileShare.ReadWrite))
{
InitBlock(enclosingInstance);
}
附:
对路径“E:\我的文档\Visual Studio 2005\WebSites\Search\crawled\segments”的访问被拒绝。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 对路径“E:\我的文档\Visual Studio 2005\WebSites\Search\crawled\segments”的访问被拒绝。
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
源错误:
行 712: }
行 713: public long position;
行 714: public Descriptor(FSIndexInput enclosingInstance, System.IO.FileInfo file, System.IO.FileAccess mode)
行 715: : base(new System.IO.FileStream(file.FullName, System.IO.FileMode.Open, mode, System.IO.FileShare.ReadWrite))
行 716: {
源文件: D:\databackup\Lucene.Net-2.0\Lucene.Net-2.0\src\Lucene.Net\Store\FSDirectory.cs 行: 714
堆栈跟踪:
[UnauthorizedAccessException: 对路径“E:\我的文档\Visual Studio 2005\WebSites\Search\crawled\segments”的访问被拒绝。]
System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +2013939
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) +998
System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) +114
Lucene.Net.Store.Descriptor..ctor(FSIndexInput enclosingInstance, FileInfo file, FileAccess mode) in D:\databackup\Lucene.Net-2.0\Lucene.Net-2.0\src\Lucene.Net\Store\FSDirectory.cs:714
Lucene.Net.Store.FSIndexInput..ctor(FileInfo path) in D:\databackup\Lucene.Net-2.0\Lucene.Net-2.0\src\Lucene.Net\Store\FSDirectory.cs:732
Lucene.Net.Store.FSDirectory.OpenInput(String name) in D:\databackup\Lucene.Net-2.0\Lucene.Net-2.0\src\Lucene.Net\Store\FSDirectory.cs:577
Lucene.Net.Index.SegmentInfos.Read(Directory directory) in D:\databackup\Lucene.Net-2.0\Lucene.Net-2.0\src\Lucene.Net\Index\SegmentInfos.cs:49
Lucene.Net.Index.AnonymousClassWith.DoBody() in D:\databackup\Lucene.Net-2.0\Lucene.Net-2.0\src\Lucene.Net\Index\IndexReader.cs:66
Lucene.Net.Store.With.Run() in D:\databackup\Lucene.Net-2.0\Lucene.Net-2.0\src\Lucene.Net\Store\Lock.cs:121
Lucene.Net.Index.IndexReader.Open(Directory directory, Boolean closeDirectory) in D:\databackup\Lucene.Net-2.0\Lucene.Net-2.0\src\Lucene.Net\Index\IndexReader.cs:210
Lucene.Net.Index.IndexReader.Open(String path) in D:\databackup\Lucene.Net-2.0\Lucene.Net-2.0\src\Lucene.Net\Index\IndexReader.cs:188
Lucene.Net.Search.IndexSearcher..ctor(String path) in D:\databackup\Lucene.Net-2.0\Lucene.Net-2.0\src\Lucene.Net\Search\IndexSearcher.cs:79
Pages_Keyword_Search.Bind() in e:\我的文档\Visual Studio 2005\WebSites\Search\Pages\Keyword\Search.aspx.cs:27
Pages_Keyword_Search.Page_Load(Object sender, EventArgs e) in e:\我的文档\Visual Studio 2005\WebSites\Search\Pages\Keyword\Search.aspx.cs:37
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061
[解决办法]
所有用户中没有"拒绝"打勾的吧.
另外检查下是不是这个文件是不是被其它程序或其它地方以独占方式打开了没有关闭
[解决办法]
还不行的话重启下电脑可能会好.
[解决办法]
加到管理员的组,再试试
[解决办法]
1.如果是2003系统请确保iis_wpg账户有完全控制权限;
2.将你aspnet,everyone账户的所有权限都取消,然后重新赋予所有权限;
[解决办法]
仔细检查权限设置吧
实在不行,换一台机器重头设置一次看还出错不,然后对比有什么不同.
[解决办法]
一种是换一台电脑看看,一个是换一种操作系统看看
[解决办法]
权限问题
[解决办法]
在 <system.web>下面加入以后语句
<identity impersonate="true" userName="YourAdminUsr" password="YourAdminPwd"/>
以上语句应加在
<authentication mode="Windows" />
[解决办法]
http://www.cnblogs.com/adsiz/archive/2008/01/04/1025746.html
[解决办法]
可能是临时文件夹权限问题,对C:\\temp文件夹给本机管理员权限
[解决办法]
访问路径是否与项目有关,无关用绝对路径。通过web services试试看
[解决办法]
访问的是文件夹?怎么没有见后缀名的?
[解决办法]
文件夹权限问题,要加入一个.Net权限
[解决办法]
是否是访问文件
E:\我的文档\Visual Studio 2005\WebSites\Search\crawled\segments
是文件夹,而不是文件,是否应该这样
E:\我的文档\Visual Studio 2005\WebSites\Search\crawled\segments\xxx.xxx
[解决办法]
1.可能是安装出了问题,重新安装 执行命令,aspnet_regiis -i ,记得要生启啊
2.提升everyone的权限到可修改
3.提升aspnet权限:控制面板-管理工具-计算机管理-本地用户和组 找到ASPNET 隶属于里面加上Administrators
4.将iis虚拟目录删掉后重新建
5.在web.config文件中加入<identity impersonate="true"/>
6.
若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
everyone加写入权限
试试上面
[解决办法]
你是不是直接在客户端读取文件??如果是的话要传到服务器中再操作
[解决办法]
试试把那个文件夹的只读属性去掉。。。
[解决办法]
添加network service这个角色,修改打勾就行了。我也遇到相同问题解决了。