none
客户端使用wcf操作服务端Linq上传图片的问题 RRS feed

  • 问题

  • 用户操作的是WinForm客户端,通过Linq读取了服务器上面的数据。

    我现在要新增一条数据,其中一个字段为Image,我通过本地转化为Byte(),然后赋值给Image这个字段。

    使用 SubmitChange()保存数据。提示400错误,如果不修改该Image这个字段,则正确

    我把转化为字节的代码贴出来,大家看看是哪的问题:

     

    Dim fImageName As String = Path.GetFileNameWithoutExtension(OpenFileDialog1.FileName)
    Dim fs As New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read)
    Dim br As New BinaryReader(fs)
    Dim fInputImageBinary As Byte() = br.ReadBytes(CInt(fs.Length))
    br.Close()
    fs.Close()
    当前学生档案.照片 = fInputImageBinary
    
    说明:当前学生档案.照片 为Linq.binary 类型

     


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    • 已编辑 Dodu.NET 2011年11月22日 8:26
    2011年11月16日 5:42

答案

全部回复

  • 我试了另外一个办法也是提示400错误

     

    Dim ms As New MemoryStream()
    Dim img As Byte() = New Byte() {}
    
    PictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
    img = New Byte(ms.Length - 1) {}
    ms.Position = 0
    ms.Read(img, 0, Convert.ToInt32(ms.Length))
    ms.Close()
    当前学生档案.照片 = img
    

     

    请问这是什么问题?


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    2011年11月16日 5:46
  • 希望下列的文章對你有幫助。

    http://debugmode.net/2010/05/10/inserting-and-retrieving-image-using-linq-to-sql-from-asp-net-application/


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年11月16日 5:55
  • 你好,这个方法我试了,我的配置是这样的,用户操作winform通过wcf与服务器通信,服务器端使用的linq to sql操作数据库。

    在这种环境下,当客户端调用更新的方法,而服务器运行db.submitchange()的时候,返回400错误的请求。

    在web环境下这是完全没问题的。


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/

    • 已编辑 Dodu.NET 2011年11月16日 16:46
    2011年11月16日 16:31
  • 顶起来。。。。
    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    2011年11月22日 8:27
  • 您好,400是个网络错误,应该和LINQ to SQL没有关系。
    Allen Li [MSFT]
    MSDN Community Support | Feedback to us
    2011年11月24日 2:42
    版主
  • 同样的程序代码,在服务器端的web中添加上传功能,这样是没有问题的。

    通过客户端winform访问上传的时候就出现这样的问题,请问这是什么情况?


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    • 已编辑 Dodu.NET 2011年12月3日 2:55
    2011年12月3日 2:24
  • 我再说明一下,我的wcf客户端配置如下(binding 为 BasicHttpBinding,字节数我也改大了):

    <binding name="BasicHttpBinding_IStudentInfo" closeTimeout="00:10:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="655360000" maxBufferPoolSize="5242880000" maxReceivedMessageSize="655360000" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
        <readerQuotas maxDepth="32" maxStringContentLength="81920000" maxArrayLength="163840000" maxBytesPerRead="40960000" maxNameTableCharCount="163840000" />
        <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
        </security>
    </binding>
    

    在调用以上我说明的代码上传图片到服务端数据库时提示:400,错误的请求!

    而我单独在服务器端建立一个网页,主要代码和以上我说明的代码一样,保存图片到数据库,这个时候完全是正常的(没有错误)。

    这是为什么呢?? 急求解!!!!!!


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    • 已标记为答案 Dodu.NET 2012年6月17日 0:07
    • 取消答案标记 Dodu.NET 2012年6月17日 0:07
    2012年1月11日 15:01
  • 已经解决。。。

    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/

    • 已标记为答案 Dodu.NET 2012年6月17日 0:08
    2012年6月17日 0:08