У меня есть следующее:
Открытый интерфейс INorthwindSvc
<OperationContract()>
<WebGet(UriTemplate:="EmployeePictureBytes?id={EmpId}")>
Function GetEmployeePictureBytesById(ByVal EmpId As String) As Byte()
Конечный интерфейс
Я реализовал метод (используя EF 4.0) следующим образом:
Public Function GetEmployeePictureBytesById(ByVal EmpId As String) As Byte() Implements INorthwindSvc.GetEmployeePictureBytesById
Dim ctxt As New NorthwindEntities
Dim q = From c In ctxt.Employees
Where c.EmployeeID = EmpId
Select c.Photo
Return q.FirstOrDefault
End Function
Я могу получать байты при доступе к операции из браузера.Если я пытаюсь получить доступ к тому же файлу с помощью Win Client следующим образом (возникает ошибка, как показано на рисунке):
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim o As New WebClient
Dim b() As Byte = o.DownloadData(New Uri("http://localhost:8732/WcfWebHttpSvcLib/rest/EmployeePictureBytes?id=2"))
Dim ms As New MemoryStream()
ms.Write(b, 0, b.Length)
Dim original As New System.Drawing.Bitmap(ms) 'error: parameter is not valid
End Sub
Я также пытался сделать то же самое, используя Image.FromStream.Но все равно не повезло.
Может ли кто-нибудь помочь мне в этом?
спасибо