如何解决异常:远程服务器返回了意外响应:(413)请求实体太大。 [英] How to solve the exception: The remote server returned an unexpected response: (413) Request Entity Too Large.
问题描述
大家好......我正在尝试使用wcf创建一个产品上传页面。在这个我正在使用服务库。
但是当点击添加按钮时它会显示远程服务器抛出的异常名为
远程服务器返回了意外回应:(413)请求实体太大。
我在这篇文章中实际放置的内容可以帮助我解决这个问题。
添加product.aspx.cs:
hi guys... I am trying to create a page for product upload using wcf. In this i am using service library.
But when click the add button it's showing remote server thrown the exception called
remote server returned an unexpected response: (413) Request Entity Too Large.
What i did actually placing in this post can any body help me to sort out this problem.
add 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)
{
}
}
Wcf Service Libray:
Wcf Service Libray:
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;
}
实体:
Entities:
[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;
}
}
ServiceLibrary的App.config:
App.config for 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>
推荐答案
您要向客户发送一个非常大的实体或大型实体列表
如何解决它。
Hi,
You are sending a very large entity or a large list of entity to client
How to solve it.
<system.servicemodel>
<bindings>
<basichttpbinding>
<binding maxreceivedmessagesize="10485760">
<readerquotas ...="" />
</binding>
</basichttpbinding>
</bindings>
</system.servicemodel>
一些参考: http://social.msdn.microsoft.com/Forums/vstudio/en-US/872fff1e- b78e-4b49-808c-558f46a11a17 / the-maximum-message-size-quota-for-incoming-messages-65536-have-been-to-increase-the forum = wcf [ ^ ]
< a href =http://stackoverflow.com/questions/5337367/wcf-ws-throwing-maxreceivedmessagesizeexceeded> http://stackoverflow.com/questions/5337367/wcf-ws-throwing-maxreceivedmessagesizeexceeded [< a href =http://stackoverflow.com/questions/5337367/wcf-ws-throwing-maxreceivedmessagesizeexceededtarget =_ blankt itle =新窗口> ^ ]
这篇关于如何解决异常:远程服务器返回了意外响应:(413)请求实体太大。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!