读书人

silverlight web services调用传参数有

发布时间: 2012-02-09 18:22:27 作者: rapoo

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文件的形式存储起来。

[解决办法]
可能是传输的数据量较大的原因

HTML code
    <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>
[解决办法]
这样设置试试:

XML code
        <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> 

读书人网 >CAD教程

热点推荐