首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用BinaryWriter编写ArgumentOutOfRangeException文件

用BinaryWriter编写ArgumentOutOfRangeException文件
EN

Stack Overflow用户
提问于 2010-10-21 15:19:16
回答 1查看 450关注 0票数 1

我在客户端有一个函数,获取文件,从它做一个字节数组,并将该数组发送到服务器上的web服务!这是客户端的函数:

代码语言:javascript
复制
Public Function GetFile(ByVal filename As String) As Byte()
    Dim binReader As New BinaryReader(File.Open(filename, FileMode.Open))
    binReader.BaseStream.Position = 0
    Dim binFile As Byte() = binReader.ReadBytes(Convert.ToInt32(binReader.BaseStream.Length))
    binReader.Close()
    Return binFile
End Function

现在asmx webservice在服务器上,得到字节数组,并将字节数组转换为需要保存在服务器上的文件。这是webservice中需要执行此操作的函数:

代码语言:javascript
复制
   <WebMethod()> _
   Public Sub PutFile(ByVal buffer As Byte(), ByVal filename As String)
        Dim binWriter As New BinaryWriter(File.Create((filename), FileMode.CreateNew, FileAccess.ReadWrite))
        binWriter.Write(buffer)
        binWriter.Close()
    End Sub

在我调用这个webservice之后,我得到了这个错误:

代码语言:javascript
复制
Server was unable to process request. ---> System.ArgumentOutOfRangeException: Enum value was out of legal range. Parameter name: options    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)

服务器上需要保存文件的路径是D:\Archive我设置了此文件夹的权限,并赋予aspnet用户对此文件夹的完全控制权限,但即使在此之后,我仍收到相同的错误!

EN

回答 1

Stack Overflow用户

发布于 2010-10-21 15:28:00

我可能会使用ReadAllBytesWriteAllBytes来简化这两个函数

代码语言:javascript
复制
Public Function GetFile(ByVal filename As String) As Byte()
    Return File.ReadAllBytes(filename)
End Function

在服务器上:

代码语言:javascript
复制
<WebMethod()> _
Public Sub PutFile(ByVal buffer As Byte(), ByVal filename As String)
    File.WriteAllBytes(filename, buffer)
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3985142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档