silverlight web services调用传参数问题
silverlight的.cs文件中:
Service2Client proxy = new Service2Client();
proxy.UpdateFlowFileCompleted += new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(UpdateFlowFileCompleted);
proxy.UpdateFlowFileAsync(string xml, fileurl);
web services中:
[OperationContract]
public void UpdateFlowFile(string flowcontent, string parafileurl)
{
string url = parafileurl;
using (var w = new StreamWriter(new FileStream(url, FileMode.Create), Encoding.Unicode))
{
w.Write(flowcontent);
w.Close();
}
}
UpdateFlowFile函数的作用就是将参数flowcontent以xml文件存储到parafileurl所指示的服务器目录中。
现在的问题是,有的时候proxy.UpdateFlowFileAsync(string xml, fileurl);执行后,无法触发UpdateFlowFile函数的执行,我调试跟踪后发现的,结果就导致xml文件没有建立。有的时候又可以正常执行。我猜会不会是因为proxy.UpdateFlowFileAsync(string xml, fileurl);中参数xml的值太长了,请问哪位知道什么原因。
我的目的是:我在客户端通过silverlight得到了xml格式的数据,要把数据传到服务器,并以xml文件的形式存储起来。
[解决办法]
可能是传输的数据量较大的原因
<bindings> <basicHttpBinding> <binding name="InternetExchangeServiceSoap" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" [color=#FF0000]maxBufferSize="65536000"[/color] maxBufferPoolSize="524288" [color=#FF0000]maxReceivedMessageSize="65536000"[/color] messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="8192" [color=#FF0000]maxArrayLength="1638400"[/color] [color=#FF0000]maxBytesPerRead="409600"[/color] maxNameTableCharCount="16384" /> <security mode="None"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings>
[解决办法]
这样设置试试:
<bindings> <basicHttpBinding> <binding name="BasicHttpBinding_IDataService" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"> <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" /> </binding> </basicHttpBinding> </bindings>