西山森林公园景区地图:silverlight调用wcf报错“给定关键字不在数据字典中”
来源:百度文库 编辑:偶看新闻 时间:2024/05/04 15:43:23
一、 KeyNotFoundException,给定关键字不在字典中
可通过使用启用silvlerlight功能的WCF服务。当然,普通的WCF也是可以使用在SL中的,只不过在配置上比较繁琐。二、 无法序列化
1. 第一类错误:无法从未标记有 DataContractAttribute 或 SerializableAttribute 的类型继承类型…… 这类错误可以通过加上如上提示的属性解决,但更多时候需要检查是否调用的是“启用silvlerlight功能的WCF服务”。 2. 第二类错误:尝试对参数 http://tempuri.org/ 进行序列化时出错。 同第一类。也有可能是代码缺少必要的属性。 3. 第三类错误:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错。 同第一类。也可从修改reference.cs中的属性的namespace解决。 4. 第四类错误:“Element”命名空间“***”中的“***”并非所需元素。所需元素应为“__identity”同第一类。 PS: 参数类或者返回值类不能包含任何方法和构造函数。不然也会出现不能序列化。 三、 MarshalByRefObject
如果调用的是普通的WCF,则极有可能在reference.cs产生的客户端代码中,有System.MarshalByRefObject。这应该是微软WCF的一个BUG。因为SL中根本就没有这个类。查看WEBSERVICE,客户端代码中自动生成了MarshalByRefObject。那么参照WS,我们也可以生成一个供WCF使用的MarshalByRefObject。如下: view plaincopy to clipboardprint?
[System.Runtime.Serialization.KnownTypeAttribute(typeof(DbParameter))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(SqlParameter))]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name = "MarshalByRefObject", Namespace = "http://tempuri.org/")]
public abstract partial class MarshalByRefObject : object, System.ComponentModel.INotifyPropertyChanged
{
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null))
{
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
[System.Runtime.Serialization.KnownTypeAttribute(typeof(DbParameter))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(SqlParameter))]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name = "MarshalByRefObject", Namespace = "http://tempuri.org/")]
public abstract partial class MarshalByRefObject : object, System.ComponentModel.INotifyPropertyChanged
{ public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(string propertyName)
{
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null))
{
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
四、 SqlParameter传值的问题
SqlParameter这个参数比较特殊,在SL调用webservice的时候是支持的,在SL调用WCF的时候是不支持。 如果一定要传这类参数,可以自己创建一个SqlParameter类,在SL端和WCF端均调用即可。 五、 异步转同步
WCF默认不支持同步调用,需要开发者自己拓展。见http://blog.csdn.net/luminji/archive/2010/02/02/5281944.aspx。六、 典型配置ServiceReferences.ClientConfig
6:典型配置Web.config
可通过使用启用silvlerlight功能的WCF服务。当然,普通的WCF也是可以使用在SL中的,只不过在配置上比较繁琐。二、 无法序列化
1. 第一类错误:无法从未标记有 DataContractAttribute 或 SerializableAttribute 的类型继承类型…… 这类错误可以通过加上如上提示的属性解决,但更多时候需要检查是否调用的是“启用silvlerlight功能的WCF服务”。 2. 第二类错误:尝试对参数 http://tempuri.org/ 进行序列化时出错。 同第一类。也有可能是代码缺少必要的属性。 3. 第三类错误:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错。 同第一类。也可从修改reference.cs中的属性的namespace解决。 4. 第四类错误:“Element”命名空间“***”中的“***”并非所需元素。所需元素应为“__identity”同第一类。 PS: 参数类或者返回值类不能包含任何方法和构造函数。不然也会出现不能序列化。 三、 MarshalByRefObject
如果调用的是普通的WCF,则极有可能在reference.cs产生的客户端代码中,有System.MarshalByRefObject。这应该是微软WCF的一个BUG。因为SL中根本就没有这个类。查看WEBSERVICE,客户端代码中自动生成了MarshalByRefObject。那么参照WS,我们也可以生成一个供WCF使用的MarshalByRefObject。如下: view plaincopy to clipboardprint?
[System.Runtime.Serialization.KnownTypeAttribute(typeof(DbParameter))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(SqlParameter))]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name = "MarshalByRefObject", Namespace = "http://tempuri.org/")]
public abstract partial class MarshalByRefObject : object, System.ComponentModel.INotifyPropertyChanged
{
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null))
{
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
[System.Runtime.Serialization.KnownTypeAttribute(typeof(DbParameter))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(SqlParameter))]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name = "MarshalByRefObject", Namespace = "http://tempuri.org/")]
public abstract partial class MarshalByRefObject : object, System.ComponentModel.INotifyPropertyChanged
{ public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(string propertyName)
{
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null))
{
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
四、 SqlParameter传值的问题
SqlParameter这个参数比较特殊,在SL调用webservice的时候是支持的,在SL调用WCF的时候是不支持。 如果一定要传这类参数,可以自己创建一个SqlParameter类,在SL端和WCF端均调用即可。 五、 异步转同步
WCF默认不支持同步调用,需要开发者自己拓展。见http://blog.csdn.net/luminji/archive/2010/02/02/5281944.aspx。六、 典型配置ServiceReferences.ClientConfig
在调用字幕的时候XP报错??不知道什么意思??那位懂啊??1
在调用字幕的时候XP报错??不知道什么意思??那位懂啊??2
asp调用sql存储过程(有参数),分页显示报错
java程序没有任何报错,但是其中一个类的方法无法调用,请大家帮帮忙
空调用多少年进行报养,我家已用五年是否要充氟
在一个函数中用malloc()函数申请了一个int数组的空间,然后做了一些运算,后来,调用free()报错。为什么
给排水报研求助
怎样给求知报投稿
如何给华商报投稿
华商报的网站是什么?怎么投稿给华商报??
建筑电气安装"WCF"是说导线怎样敷设?
如果你们给客户的报价报错了,会怎么样啊?5555
增值税申报表被我给报错了,怎么办啊?
我给孩子报错了中考的志愿,我该怎么办
急!我做网页总是报错,谁给指点一下?
请给我报一下价好吗
给我报个电脑配置价
汽车小划痕保险公司给报吗?
给我点手抄报的素材
给我一些手抄报的资料
给我的英语手抄报
怎样投稿给中学生学习报?
该如何给孩子报户口?
手抄报怎样做,给点提示