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());
}
}
}
- Linq Like的操作
- iOS网络——AFNetworking AFURLSessionManager源码解析
- 1692: [Usaco2007 Dec]队列变换(BZOJ1640强化版)
- 1620: [Usaco2008 Nov]Time Management 时间管理
- 手把手教你树莓派linux内核如何编译
- js处理异常try{}catch(e){}
- 1634: [Usaco2007 Jan]Protecting the Flowers 护花
- C#用链式方法表达循环嵌套1
- C#用链式方法表达循环嵌套2
- 【开源】1句代码搞定图片批量上传,无需什么代码功底【无语言界限】
- C#异步调用的方法
- 【David Silver 深度强化学习教程代码实战07】 DQN的实现
- AutoMapper随笔记
- 简析.NET Core 以及与 .NET Framework的关系
- 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 数组属性和方法
- Java常用设计模式--代理模式(Proxy Pattern)
- 详解爬取搜狐号自媒体的所有文章
- 笑了,面试官问我知不知道异步编程的Future。
- ES6之let和const命令
- [Python] 豆瓣自动回帖、顶帖源码
- 基于OpenMV的人脸识别,支持人脸注册、人脸检测、人脸识别
- FatFs检测并建立多层目录并更改文件名
- Docker安装harbor仓库、更改端口、跨服务器访问
- 字符串处理算法题 -> 替换空格
- 简单二分法查找
- 链表之Python与C
- Python MQTT
- 从键盘输入一个十进制个位数,在屏幕上显示相应数量的该数。 例如,输入3,屏幕上将显示“333”。
- ESP32 OTA详解-中文翻译版
- 汇编语言从键盘输入一个字符串(串长不大于80)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z)