C# 使用WCF服务和Base64Request上载映像时出错400
我正在尝试使用webservices和Base64string上传图像 但每次我试图上传图像时,它都会给我错误的请求(400) 我在谷歌上搜索了很多,它说错误是由于请求中传递了大量数据造成的 所以我尝试从web.config增加数据长度,但添加了这个C# 使用WCF服务和Base64Request上载映像时出错400,c#,.net,wcf,json,C#,.net,Wcf,Json,我正在尝试使用webservices和Base64string上传图像 但每次我试图上传图像时,它都会给我错误的请求(400) 我在谷歌上搜索了很多,它说错误是由于请求中传递了大量数据造成的 所以我尝试从web.config增加数据长度,但添加了这个 <system.serviceModel> <bindings> <basicHttpBinding> <!-- buffer: 64KB; max size: 64M
<system.serviceModel>
<bindings>
<basicHttpBinding>
<!-- buffer: 64KB; max size: 64MB -->
<binding name="FileTransferServicesBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00"
transferMode="Streamed" messageEncoding="Mtom" maxBufferSize="65536" maxReceivedMessageSize="67108864">
<security mode="None">
<transport clientCredentialType="None"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
我按如下方式调用此函数:-
public string PostRemoteJSON(string strurl, string param)
{
try
{
strurl = "http://mydomain.com/EventService.svc/AddAlbum";
param = "{\"imgstring\":\"BASE64STRINGCONTENT\"}";
WebRequest myWebRequest;
Stream myRequestStream;
StreamWriter myStreamWriter;
WebResponse myWebResponse;
myWebRequest = WebRequest.Create(strurl);
myWebRequest.Method = "POST";
myWebRequest.Timeout = 1000000;
myWebRequest.ContentType = "application/json";
myWebRequest.ContentLength = param.Length;
myRequestStream = myWebRequest.GetRequestStream();
myStreamWriter = new StreamWriter(myRequestStream);
myRequestStream = myWebRequest.GetRequestStream();
myStreamWriter.Write(param);
myStreamWriter.Flush();
myStreamWriter.Close();
myRequestStream.Close();
myWebResponse = myWebRequest.GetResponse();
StreamReader reader = new StreamReader(myWebResponse.GetResponseStream());
return reader.ReadToEnd();
}
catch (Exception ex)
{
return ex.Message;
}
}
请帮帮我
感谢您尝试将maxBufferSize、maxArrayLength和maxReceiveMessageSize全部设置为最大请求负载大小的两倍(用于测试)。将其精确设置为64k不会考虑序列化和协议开销,而且太小。我们在中遇到了同样的问题。我假设您在调试应用程序时遇到此问题。DevServer似乎不支持流式绑定。如果您已经尝试增加配额和缓冲区,但没有解决问题,请尝试在IIS中部署您的应用程序,对我们来说,在IIS环境中一切正常。我没有调试该项目,实际上我已上载该项目并使用其他项目进行测试。确定。然后需要检查绑定配置。检查readerQuotas等。检查这两个链接:以及服务器端和客户端的配置。看看basicHttpBinding流式绑定。
public string PostRemoteJSON(string strurl, string param)
{
try
{
strurl = "http://mydomain.com/EventService.svc/AddAlbum";
param = "{\"imgstring\":\"BASE64STRINGCONTENT\"}";
WebRequest myWebRequest;
Stream myRequestStream;
StreamWriter myStreamWriter;
WebResponse myWebResponse;
myWebRequest = WebRequest.Create(strurl);
myWebRequest.Method = "POST";
myWebRequest.Timeout = 1000000;
myWebRequest.ContentType = "application/json";
myWebRequest.ContentLength = param.Length;
myRequestStream = myWebRequest.GetRequestStream();
myStreamWriter = new StreamWriter(myRequestStream);
myRequestStream = myWebRequest.GetRequestStream();
myStreamWriter.Write(param);
myStreamWriter.Flush();
myStreamWriter.Close();
myRequestStream.Close();
myWebResponse = myWebRequest.GetResponse();
StreamReader reader = new StreamReader(myWebResponse.GetResponseStream());
return reader.ReadToEnd();
}
catch (Exception ex)
{
return ex.Message;
}
}