C# 使用.net webservice以像素为单位发送图像

C# 使用.net webservice以像素为单位发送图像,c#,.net,C#,.net,我以像素形式为发送图像编写了一个Web服务。它工作得很好,但当我们在参数中提供大量数据时,它不会获取完整的数据。它需要有限的数据或小图像。 这是参数限制吗?或者我如何在参数中给出大数据 这是我的密码 [WebMethod] public XmlDocument testuploadimage(string image) { XmlDocument login = new XmlDocument(); XmlDeclaration dec

我以像素形式为发送图像编写了一个Web服务。它工作得很好,但当我们在参数中提供大量数据时,它不会获取完整的数据。它需要有限的数据或小图像。 这是参数限制吗?或者我如何在参数中给出大数据

这是我的密码

    [WebMethod]
    public XmlDocument testuploadimage(string image)
    {

        XmlDocument login = new XmlDocument();
        XmlDeclaration dec = login.CreateXmlDeclaration("1.0", null, null);
        login.AppendChild(dec);
        XmlElement root = login.CreateElement("CreateUser");
        login.AppendChild(root);

        try
        {

                string actFolder = Server.MapPath("~/Images/");
                string s = image.Replace(" ", string.Empty);


                string imgname = DateTime.UtcNow.ToString().Replace(" ", "").Replace("AM", "").Replace("PM", "").Replace("/", "").Replace("-", "").Replace(":", "") + ".png";
                //       string imgname = DateTime.UtcNow.ToString("yyyyMMddHHmm") + ".png";

                byte[] imageBytes = Convert.FromBase64String(image.Replace(" ","+"));
                MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
                // MemoryStream ms = new MemoryStream(imageBytes);
                // Convert byte[] to Image
                //  ms.Write(imageBytes, 0, imageBytes.Length);

                Image image2 = Image.FromStream(ms);
                image2.Save(actFolder + imgname);


                XmlElement root1 = login.CreateElement("uploaded");
                root1.InnerText = "true";
                root.AppendChild(root1);
                XmlElement root2 = login.CreateElement("path");
                root2.InnerText = "http://Myserver/HeritageWebServices/Images/" + imgname;
                root.AppendChild(root2);

                return login;

            }
            catch (Exception ex)
            {
                ErrLogMgr.LogErrorMessage(string.Format("{0}{1}", "testuploadimage() for the image :",
                                                       image), "testUploadimage Inputs",
                                                        ERRORSOURCE.CSASERVICE);
                XmlDocument cd = new XmlDocument();
                cd.LoadXml("<Message>" + ex + "</Message>");



                return cd;
[WebMethod]
公共XmlDocument testuploadimage(字符串图像)
{
XmlDocument login=new XmlDocument();
XMLDec=login.CreateXmlDeclaration(“1.0”,null,null);
登录名:AppendChild(dec);
XmlElement root=login.CreateElement(“CreateUser”);
AppendChild(root);
尝试
{
字符串actFolder=Server.MapPath(“~/Images/”);
字符串s=image.Replace(“,string.Empty”);
字符串imgname=DateTime.UtcNow.ToString().Replace(“,”).Replace(“,”).Replace(“,”).Replace(“/”,”).Replace(“:”,“)+”.png”;
//字符串imgname=DateTime.UtcNow.ToString(“yyyyMMddHHmm”)+“.png”;
byte[]imageBytes=Convert.FromBase64String(image.Replace(“,”+”);
MemoryStream ms=新的MemoryStream(imageBytes,0,imageBytes.Length);
//MemoryStream ms=新的MemoryStream(imageBytes);
//将字节[]转换为图像
//ms.Write(imageBytes,0,imageBytes.Length);
Image image2=Image.FromStream(ms);
image2.保存(actFolder+imgname);
XmlElement root1=login.CreateElement(“上传”);
root1.InnerText=“true”;
根.AppendChild(root1);
xmlementroot2=login.CreateElement(“路径”);
root2.InnerText=”http://Myserver/HeritageWebServices/Images/“+imgname;
根.AppendChild(root2);
返回登录;
}
捕获(例外情况除外)
{
ErrLogMgr.LogErrorMessage(string.Format(“{0}{1}”),“图像的testuploadimage()”,
图像),“testUploadimage输入”,
ERRORSOURCE.CSASERVICE);
XmlDocument cd=新的XmlDocument();
LoadXml(“+ex+”);
返回光盘;
两件事

尝试更改web.config文件中的maxRequestLength

我看到您正在使用base64发送图像,您可以尝试在将bytearray转换为base64之前压缩它,以减少图像或尝试转换为更压缩的图像类型(ej:bmp到png)

关于两件事

尝试更改web.config文件中的maxRequestLength

我看到您正在使用base64发送图像,您可以尝试在将bytearray转换为base64之前压缩它,以减少图像或尝试转换为更压缩的图像类型(ej:bmp到png)


关于

Hii感谢4回复..我在web.config上更改了我的maxRequestLength。但仍然参数没有获取全部数据..它需要有限的像素量。是否检查字符串的长度?在服务配置上尝试使用maxMessageLength,这是一个使用Hi的示例..不,我仍在处理它..现在我安装wse3.0并尝试这样做lve此问题..Hii感谢4回复..我在web.config上更改了我的maxRequestLength。但仍然参数没有获取全部数据..它需要有限的像素量。是否检查字符串的长度?在服务配置上尝试使用maxMessageLength,这是一个使用Hi的示例..不,我仍在处理它..现在我安装wse3.0并尝试解决这个问题。。