前提条件:开发的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出的问题
请大家帮忙看看。谢谢!

解决方案 »

  1.   

    是不是你的C:\count 没有权限呀给一个完全控制试试
      

  2.   

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

  3.   

    权限问题,你的IIS用户无法读取这个目录
      

  4.   

    在windows2000下面,可以单击你所要读取的txt文件,看被访问权限,选取everyone。
    在windowsxp下,没有直接看属性看权限,只有到安全模式下去改权限才行。
    一般的文件它的安全选项卡都有everyone。
      

  5.   

    windows2000或windows 2003有权限问题,要更改该目录的权限
      

  6.   

    现在权限问题好了,可是另外一个问题:
    我把代码放在服务器上,服务器上可以读取本地的txt文件
    我远程访问,通过IP,txt文件为客户机上,出现问题:异常详细信息: System.IO.FileNotFoundException: 未能找到文件“E:\counter.txt”。
    这个怎么回事呢?
      

  7.   

    因为服务器上没有文件,所以会出错,解决方法是将选择的文件上传至服务器,服务器通过上传来的文件作为条件查询:
    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端用浏览器上传文件当然不会出错,因为服务器与客户端变成同一台机子操作,所以无论路径如何,在服务器端该文件都是存在的
      

  8.   

    至于上传文件,参考一下:'//客户机文件(选中的文件)
                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
      

  9.   

    非常感谢讲的比较细,我是菜鸟,刚搞.net不久