[ad_1]
Mais lorsque vous cliquez sur le bouton Ajouter, le serveur distant affiche l’exception appelée
Le serveur distant a renvoyé une réponse inattendue : (413) Request Entity Too Large.
Ce que j’ai fait en plaçant dans ce post, quelqu’un peut-il m’aider à résoudre ce problème.
ajoutez product.aspx.cs :
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) { } }
Bibliothèque de services WCf :
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; }
Entités :
[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 pour ServiceLibrary :
<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>
Solution 1
Salut,
Vous envoyez une très grande entité ou une grande liste d’entités au client
Comment le résoudre.
<system.servicemodel> <bindings> <basichttpbinding> <binding maxreceivedmessagesize="10485760"> <readerquotas ...="" /> </binding> </basichttpbinding> </bindings> </system.servicemodel>
Quelques réf : http://social.msdn.microsoft.com/Forums/vstudio/en-US/872fff1e-b78e-4b49-808c-558f46a11a17/the-maximum-message-size-quota-for-incoming-messages-65536-has- été-dépassé-pour-augmenter-le?forum=wcf[^]
http://stackoverflow.com/questions/5337367/wcf-ws-throwing-maxreceivedmessagesizeexceeded[^]
[ad_2]
コメント