silverlight向wcf传递大于8192字节(8k)的字符串
时间:2022-04-23
本文章向大家介绍silverlight向wcf传递大于8192字节(8k)的字符串,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
默认情况下,silverlight在调用wcf时,如果传递的参数长度大于8192字节,即8k,会提示Not Found错误。
解决方法如下:
1、wcf服务端修改web.config 如下:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<!--注:此处的name值要跟下面的behaviorConfiguration值对应-->
<behavior name="A">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<!--注1:此处的behaviorConfiguration值要跟上面的name值对应-->
<!--注2:此处的name值不能随便修改,命名格式为:完全命名空间+类名 -->
<service behaviorConfiguration="A" name="WCF_SL_8192.Web.WCF.HelloWorld">
<!--注1:此处的contract值不能随便修改,命名格式为:完全命名空间+类名 -->
<!--注2:此处的bindingConfiguration值要与下面 binding name中的name值对应-->
<endpoint address="" bindingConfiguration="BBB" binding="basicHttpBinding" contract="WCF_SL_8192.Web.WCF.HelloWorld"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="BBB" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<!--name=随意命名,但要与上面的bindingConfiguration="BBB"对应 -->
<readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647"/>
<security mode="None"></security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
</configuration>
附:wcf的代码
using System.ServiceModel;
namespace WCF_SL_8192.Web.WCF
{
[ServiceContract]
public class HelloWorld
{
[OperationContract]
public int Test(string msg)
{
return msg.Length;
}
}
}
2、SL端修改ClientConfig如下:
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_HelloWorld" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
<!--下面这个节点是关键-->
<customBinding>
<binding name="BasicHttpBinding_HelloWorld">
<textMessageEncoding messageVersion="Default" writeEncoding="utf-8" />
<httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://localhost:1588/WCF/HelloWorld.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_HelloWorld"
contract="WCF.HelloWorld" name="BasicHttpBinding_HelloWorld" />
</client>
</system.serviceModel>
</configuration>
附:SL的调用代码
using System;
using System.Windows;
using System.Windows.Controls;
using WCF_SL_8192.WCF;
namespace WCF_SL_8192
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
HelloWorldClient client = new HelloWorldClient();
client.TestCompleted += new EventHandler<TestCompletedEventArgs>(client_TestCompleted);
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i < 100000; i++)
{
sb.Append("A");
}
client.TestAsync(sb.ToString());
}
void client_TestCompleted(object sender, TestCompletedEventArgs e)
{
MessageBox.Show(e.Result.ToString());
}
}
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ubuntu中python调用C/C++办法之动态链接库详解
- linux中使用boost.python调用c++动态库的办法
- 在Linux系统下上传项目到码云的办法
- PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】 原创
- Linux(Ubuntu 18.04)上安装Anaconda步骤详解
- php web环境和命令行环境下查找php.ini的位置
- PHP大文件分块上传功能实例详解
- Linux 命令行通配符及转义符的实现
- Python爬虫抓取指定网页图片代码实例
- PHP变量作用域(全局变量&局部变量)&global&static关键字用法实例分析
- CentOS 7 安装Chrome浏览器的方法
- PHP高级编程之消息队列原理与实现方法详解
- thinkphp5.1框架模板布局与模板继承用法分析
- Linux内核设备驱动之内存管理笔记整理
- Matplotlib 绘制饼图解决文字重叠的方法