访问本地txt所碰到的问题求解!

shineboy520 2006-08-24 05:37:56
前提条件:开发的web程序,数据库,txt文件都在帮本机
我调试的时候可以访问txt文件没有问题。
可是我直接通过IP(在本机127.0.0.1)来访问txt文件出现的问题如下:
--------------------------------------------------------------------------------
“/”应用程序中的服务器错误。
对路径“C:\counter.txt”的访问被拒绝。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.UnauthorizedAccessException: 对路径“C:\counter.txt”的访问被拒绝。

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。

要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

源错误:


行 137:
行 138: Dim strNews As String
行 139: Dim fs As FileStream = New FileStream(file.PostedFile.FileName, FileMode.Open)
行 140: Dim bytes(CType(fs.Length, Integer)) As Byte
行 141: fs.Read(bytes, 0, bytes.Length)

--------------------------
行139出的问题
请大家帮忙看看。谢谢!
...全文
318 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
C5662601 2006-08-25
  • 打赏
  • 举报
回复
那么多人说了是权限问题 你怎么不听呢~
shineboy520 2006-08-25
  • 打赏
  • 举报
回复
我在本机调试行,可以访问,为何直接通过IP地址来访问却不行?
kandyasp 2006-08-25
  • 打赏
  • 举报
回复
我觉得是权限问题
shineboy520 2006-08-25
  • 打赏
  • 举报
回复
应该不是权限的问题吧?否则的话客户在每次访问都需要改文件的属性?
shineboy520 2006-08-25
  • 打赏
  • 举报
回复
非常感谢讲的比较细,我是菜鸟,刚搞.net不久
shineboy520 2006-08-25
  • 打赏
  • 举报
回复
现在结帖,非常感谢
奔跑9999 2006-08-25
  • 打赏
  • 举报
回复
至于上传文件,参考一下:

'//客户机文件(选中的文件)
ClientFileName = System.IO.Path.GetFileName(file.PostedFile.FileName)
'//将选中的文件上传至服务器
file.PostedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("Queryfile/") + ClientFileName)

'//服务器文件路径
ServerFileName = System.Web.HttpContext.Current.Request.MapPath("Queryfile/") + ClientFileName

以下是孟子的:
http://dotnet.aspx.cc/ShowDetail.aspx?id=58EA3515-36F2-4FD9-AC89-EAF49F59816C
奔跑9999 2006-08-25
  • 打赏
  • 举报
回复
因为服务器上没有文件,所以会出错,解决方法是将选择的文件上传至服务器,服务器通过上传来的文件作为条件查询:
OK,其实很简单:
服务器端:Server
客户端:Client
Client请求http://www.url.com/upload.aspx
[设http://www.url.com/这个站点的目录在Server的D:\url\]
这里Client向Server端上传一个文件up.jpg
[up.jpg在Client的路径是:c:\test\up.jpg]

现在问题出在你这句语句中:
FileInfo file = new FileInfo(FileUpload1.PostedFile.FileName);

PostedFile.FileName的属性说明是:
[获取文件在客户端机子上的完全限定名如:(例如,"C:\MyFiles\Test.txt");]
重点是:"文件在客户端机子"
所以在此情景下FileUpload1.PostedFile.FileName的值是"C:\test\up.jpg"
而且是在Client的机子上这个文件才存在,
这段程序FileInfo file = new FileInfo(FileUpload1.PostedFile.FileName);里的file是提取
Server端的C:\test\up.jpg??Server端会存在C:\test\up.jpg这个文件么??
最最核心的问题是你没分清楚文件是哪台机子上存在的

当然,你在Server端用浏览器上传文件当然不会出错,因为服务器与客户端变成同一台机子操作,所以无论路径如何,在服务器端该文件都是存在的
奔跑9999 2006-08-25
  • 打赏
  • 举报
回复
找不到文件的问题
shineboy520 2006-08-25
  • 打赏
  • 举报
回复
现在权限问题好了,可是另外一个问题:
我把代码放在服务器上,服务器上可以读取本地的txt文件
我远程访问,通过IP,txt文件为客户机上,

出现问题:异常详细信息: System.IO.FileNotFoundException: 未能找到文件“E:\counter.txt”。
这个怎么回事呢?
ksnoopy 2006-08-25
  • 打赏
  • 举报
回复
windows2000或windows 2003有权限问题,要更改该目录的权限
奔跑9999 2006-08-25
  • 打赏
  • 举报
回复
或者:
在控制面板中打开“文件夹选项”,进入【查看】选项卡,找到“使用简单文件共
享”的选项将其取消。
奔跑9999 2006-08-25
  • 打赏
  • 举报
回复
在windows2000下面,可以单击你所要读取的txt文件,看被访问权限,选取everyone。
在windowsxp下,没有直接看属性看权限,只有到安全模式下去改权限才行。
一般的文件它的安全选项卡都有everyone。
shineboy520 2006-08-25
  • 打赏
  • 举报
回复
权限问题
shineboy520 2006-08-24
  • 打赏
  • 举报
回复
没有人来看看吗?
shineboy520 2006-08-24
  • 打赏
  • 举报
回复
那我调试的时候怎么可以?

那以后用户端用的时候是不是都要进行对文件设置权限?
yuchangmao 2006-08-24
  • 打赏
  • 举报
回复
权限问题,你的IIS用户无法读取这个目录
minajo21 2006-08-24
  • 打赏
  • 举报
回复
放在一个文件夹里,给文件夹分配权限
LHA 2006-08-24
  • 打赏
  • 举报
回复
ASP.NET用户没有权限啊

错误信息里面不是有提示拉:

“要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。”
tt5201 2006-08-24
  • 打赏
  • 举报
回复
是不是你的C:\count 没有权限呀

给一个完全控制试试

62,071

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧