Html 尝试将文件上载到数据库时,VB.NET网页被拒绝访问

Html 尝试将文件上载到数据库时,VB.NET网页被拒绝访问,html,sql,asp.net,vb.net,image-uploading,Html,Sql,Asp.net,Vb.net,Image Uploading,我正在尝试编写一个页面,将徽标上载到SQL数据库。但是,我不断收到拒绝访问的错误。运行该过程时,会引发以下异常: System.UnauthorizedAccessException: Access to the path 'C:\Users\ANDY\Pictures\Logo.PNG' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStrea

我正在尝试编写一个页面,将徽标上载到SQL数据库。但是,我不断收到拒绝访问的错误。运行该过程时,会引发以下异常:

System.UnauthorizedAccessException: Access to the path 'C:\Users\ANDY\Pictures\Logo.PNG' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at 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, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode) at _Default.SaveToDB(String info) in...
文件:“C:\Users\ANDY\Pictures\Logo.PNG”在我的客户端(而不是服务器)上,如果我授予每个人对该文件的完全控制权限,则它将成功上载到远程服务器

我不能要求我的用户更改上传文件的权限

在测试期间,我在两台计算机上进行了尝试: +我的开发计算机: -在VisualStudio的调试模式下,它工作得非常好 -在同一台计算机上,如果我将其加载到IIS中,它会抛出上述异常,要求向我尝试上载的本地文件或文件夹授予权限。 +我的生产服务器: -上载到生产服务器的相同文件会产生稍微不同的错误。这一次,它需要在服务器上修改此路径的权限:c:\Windows\System32\inetsrv我想我应该尝试将此文件夹的访问权限授予NetworkService帐户,但是,这似乎是一个受保护的文件夹,您无法修改System32下文件夹的权限。您也不能将NetworkService帐户添加到本地管理员(我知道,我知道-安全性不好-但我只是在这里排除故障)

带有SQL server 2008 R2的IIS 6正在承载该站点

网页代码如下:


在此处上传您的公司徽标






试试下面的方法。fileData是您将传递给sql的内容

将asp控件更改为:

<asp:FileUpload ID="FileUpload1" runat="server" />

非常感谢RickJames,他帮我解决了这个难题。他太棒了!下面是文件上传例程的最终工作代码,在我所有的机器上都测试正常。我猜是完整路径导致进程无法正常运行,FileUpload控件会为您处理这些问题:

网页:


在此处上传您的公司徽标





是这一行失败了吗?Dim imageInfo As FileInfo=New FileInfo(FileUpload1.Value.ToString().Trim())不是这一行:Dim imagestream As FileStream=New FileStream(info,FileMode.Open)我已经完全删除了扩展检查代码,但这一行仍然失败:Dim imagestream As FileStream=New FileStream(info,FileMode.Open)太棒了,这似乎奏效了。我不得不做一些小改动,但我会在下面发布这些。谢谢你的帮助。
  If FileUpload1.ContentLength > 0 Then

        Dim size As Integer = FileUpload1.ContentLength
        Dim name As String = FileUpload1.FileName
        Dim position As Integer = name.LastIndexOf("\")
        name = name.Substring(position + 1)
        Dim contentType As String = FileUpload1.ContentType
        Dim fileData As Byte() = New Byte(size - 1) {}
        FileUpload1.InputStream.Read(fileData, 0, size)

    End If