Cómo resolver la excepción: el servidor remoto devolvió una respuesta inesperada: (413) Solicitud de entidad demasiado grande.

programación


Hola chicos… Estoy intentando crear una página para cargar productos usando WCF. En esto estoy usando la biblioteca de servicios.

Pero cuando hace clic en el botón Agregar, se muestra que el servidor remoto lanzó la excepción llamada
El servidor remoto devolvió una respuesta inesperada: (413) Entidad de solicitud demasiado grande.

Lo que realmente hice al publicar en esta publicación, ¿alguien puede ayudarme a solucionar este problema?

agregue producto.aspx.cs:

HTML
protected void btnAdd_Click(object sender, EventArgs e)
        {
            
            try
            {
                
                  if (ImageUpload.FileName != "") 
                    {

                        string path = Server.MapPath("~/images/");
                         string extension = Path.GetExtension(ImageUpload.PostedFile.FileName);
                         if (((extension == ".jpg") || ((extension == ".gif") || (extension == ".png"))))

                            {
                             
                               FileStream fs = new FileStream(path+ImageUpload.PostedFile.FileName, FileMode.Open,FileAccess.Read);
                               BinaryReader br = new BinaryReader(fs);
                               byte[] image = br.ReadBytes((int)fs.Length);
                              // byte[] raw = new byte[fs.Length];
                              //fs.Read(raw, 0, Convert.ToInt32(fs.Length));

                               modeldetails.UploadPhoto = image;
                                modeldetails.Serviceno = txtServiceNo.Text;
                                modeldetails.price= long.Parse( txtPrice.Text);
                                modeldetails.Name=txtName.Text;
                                modeldetails.ManfacturedDate=DateTime.Parse(txtManfacDate.Text.ToString());
                                 modeldetails.Manfac_Product_ID=Int32.Parse(ddlProctype.SelectedItem.Value);
                                 bool rows = proxy.AddNewProduct(modeldetails);
                             if (rows)
                                 {
                                     string script = "<script>alert('Data Added Successfully')</script>";
                                     Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Added", script);
                        
                                    }
                             else
                             {
                                 string script = "<script>alert('Error Adding Data')</script>";
                                 Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Error", script);
                               }
                        }
                else
                {
                    StatusLabel.Text = "Only Jpg,gif or Png files are permitted";
                }
            }
            else
            {
                StatusLabel.Text = "Kindly Select a File.....";
            }
           
        }
    
        catch (Exception e1)
        {
 
        }

      }

Biblioteca de servicios Wcf:

HTML
public bool AddNewProduct(Model modeldetails)
        {
            
            SqlConnection con = new SqlConnection(Properties.Settings.Default.constr);
            con.Open();
            SqlCommand insert = new SqlCommand();
            insert.CommandType = CommandType.StoredProcedure;
            insert.CommandText = "AddProduct";
            insert.Connection = con;
            SqlParameter prm = insert.Parameters.Add("@Modelname", SqlDbType.NVarChar, 50);
            prm.Direction = ParameterDirection.Input;
            prm.Value = modeldetails.Name;
            prm = insert.Parameters.Add("@Price", SqlDbType.BigInt);
            prm.Direction = ParameterDirection.Input;
            prm.Value = modeldetails.price;
            prm = insert.Parameters.Add("@ManfacDate", SqlDbType.DateTime);
            prm.Direction = ParameterDirection.Input;
            prm.Value = modeldetails.ManfacturedDate;
            prm = insert.Parameters.Add("@ServiceNo", SqlDbType.NVarChar, 50);
            prm.Direction = ParameterDirection.Input;
            prm.Value = modeldetails.Serviceno;
            prm = insert.Parameters.Add("@MprocID", SqlDbType.Int);
            prm.Direction = ParameterDirection.Input;
            prm.Value = modeldetails.Manfac_Product_ID;
            prm = insert.Parameters.Add("@Image", SqlDbType.Image);
            prm.Direction = ParameterDirection.Input;
            prm.Value = modeldetails.UploadPhoto;
            



            int insertion_done = insert.ExecuteNonQuery();
            if (insertion_done == 1)
                return true;
            else
                return false;

  
        }

Entidades:

HTML
[DataContract]
    public class Model
    {
        [DataMember]
        public string Name { set; get; }
        [DataMember]
        public string Serviceno { get; set; }
        [DataMember]
        public long price { get; set; }
        [DataMember]
        public byte[] UploadPhoto { set; get; }
        [DataMember]
        public string Configurationdetails { set; get; }
        [DataMember]
        public DateTime ManfacturedDate { set; get; }
        [DataMember]
        public int Manfac_Product_ID { set; get; }


    }
    [DataContract]
    public class Product
    {
        [DataMember]
        public int ProductID
        {
            get;
            set;
        }
        [DataMember]
        public string ProductName
        {
            get;
            set;
        }
        [DataMember]
        public int Manfac_Product_ID
        {
            get;
            set;
        }
    }
    [DataContract]
    public class Manfacture
    {
        [DataMember]
        public int ManfacturerID
        {
            get;
            set;
        }
        [DataMember]
        public string ManfactureName
        {
            get;
            set;
        }

    }


App.config para ServiceLibrary:

HTML
<system.servicemodel>
    <bindings>
      <basichttpbinding>
         <binding maxbufferpoolsize="2147483647" maxbuffersize="2147483647" maxreceivedmessagesize="2147483647" messageencoding="Text">
          <readerquotas maxdepth="2000000" maxstringcontentlength="2147483647" maxarraylength="2147483647" maxbytesperread="2147483647" maxnametablecharcount="2147483647" />    
      
        </binding>
      </basichttpbinding>
        
    </bindings>
    <services>
      
      <service name="StoreServiceLibrary.Store">
        
        <endpoint address="" binding="basicHttpBinding" contract="StoreServiceLibrary.IStore">
          
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseaddress="http://localhost:8733/Design_Time_Addresses/StoreServiceLibrary/Service1/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <servicebehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, 
          set the values below to false before deployment -->
          <servicemetadata httpgetenabled="True" httpsgetenabled="True" />
          <!-- To receive exception details in faults for debugging purposes, 
          set the value below to true.  Set to false before deployment 
          to avoid disclosing exception information -->
          <servicedebug includeexceptiondetailinfaults="False" />
        </behavior>
      </servicebehaviors>
    </behaviors>
  </system.servicemodel>

Solución 1

Hola,

Está enviando una entidad muy grande o una lista grande de entidades al cliente.

Cómo resolverlo.

XML
<system.servicemodel>
  <bindings>
    <basichttpbinding>
      <binding maxreceivedmessagesize="10485760"> 
        <readerquotas ...="" />
      </binding>
    </basichttpbinding>
  </bindings>  
</system.servicemodel>

Alguna referencia: http://social.msdn.microsoft.com/Forums/vstudio/en-US/872fff1e-b78e-4b49-808c-558f46a11a17/the-maximum-message-size-quota-for-incoming-messages-65536-has- ¿Ha sido superado para aumentar el?forum=wcf[^]

http://stackoverflow.com/questions/5337367/wcf-ws-throwing-maxreceivedmessagesizeexceeded[^]

コメント

タイトルとURLをコピーしました