2012-05-19 6 views
0

Я хочу вернуть изображение через webservice, поэтому я попытался преобразовать изображение в базу данных в байт, а затем из строки байта в base64 и вернуть его в webservice. Я закончил с половиной путь, но я не мог вернуть всю цепочку надежда из-за некоторого ограничения размера строки или чего-то еще?ошибка с iis при возврате строки большого размера через webservice

<%@ WebService Language="C#" Class="Service" %> 


using System; 

using System.Web; 
using System.Web.Services; 
using System.Web.Services.Protocols; 

using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Data.SqlClient; 

using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.IO; 

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService] 
public class Service : System.Web.Services.WebService 
{ 
    public Service() { 

     //Uncomment the following line if using designed components 
     //InitializeComponent(); 
    } 

    [WebMethod] 
    public string IMAGE(string ID) 
    { 


     SqlConnection conn = new SqlConnection("Data Source=NEWCRISP19;Initial Catalog=masselango;Persist Security Info=True;User"); 
     conn.Open(); 
     SqlDataAdapter sdImageSource = new SqlDataAdapter(); 
     sdImageSource.SelectCommand = new SqlCommand("select ImageData from ImagesStore where ImageId=('" + ID + "')", conn); 
     DataSet dsImage = new DataSet(); 
     sdImageSource.Fill(dsImage); 

     byte[] blob = (byte[])dsImage.Tables[0].Rows[0][0]; 
     String c = Convert.ToBase64String(blob); 
     //c = c.Replace(" ", ""); 
     return c; 


    } 

} 

Web.config не модифицирован.

Помогите мне восстановить всю строку base64.

+1

Вы можете не передать его обратно в массив байтов? – freefaller

+0

Хотя мне нужно передать строку base64 для моего процесса приложения, я использовал перенос как таковой, хотя он возвращает некоторый предел символов для передачи, и он не пропускает целые данные – user1389233

+0

Я не знаю ограничения на длину (но я рад, что мне говорят иначе), но если вы видите проблему, то я не вижу, что мешает вам передать массив байтов, а затем преобразовать в base64 sting * in * клиентское приложение – freefaller

ответ

0

Я понял, что вы сохранили изображение в базе данных в виде двоичного файла и хотите его восстановить.

Если это вы хотите, пожалуйста, проверьте ссылку Insertion and Retrieval of image in binary

+0

OP спрашивает о веб-сервисах, похоже, что у них есть сторона базы данных, отсортированная – freefaller