网站大量收购独家精品文档,联系QQ:2885784924

C常见问题摘要.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C常见问题摘要

C#常见问题目录1简介32WCF开发问题33良好的代码习惯74常见易犯的错误115发布问题126安全相关问题127其它Faq13简介整理了一些日常开发中的常见问题及解决方案。WCF开发问题WCF里无法访问HttpContext.Current怎么办?解决:两种方案a、在服务的Web.config里加入如下配置:b、在WCF服务类定义上增加如下属性:[AspNetCompatibilityrequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]返回错误:调用方未由服务进行身份验证解决:在WCF服务端的Config配置文件添加配置:返回错误:已超过传入消息(65536)的最大消息大小配额解决:在客户端的Config配置文件里指定maxReceivedMessageSize:调用时,服务端返回400 Bad Request错误解决:修改服务端的Web.Config,增加maxReceivedMessageSize:返回错误:读取 XML 数据时,超出最大字符串内容长度配额 (8192)。解决:修改客户端的Config配置,增加maxStringContentLength:返回错误:尝试对参数 / 进行序列化时出错: xxx。InnerException 消息是对象图中可以序列化或反序列化的项目数目上限为65536。解决:需要同时修改服务端和客户端的Config配置a、服务端配置修改如下:b、客户端配置修改如下:返回错误:无法打开安全通道,因为与远程终结点的安全协商已失败。这可能是由于用于创建通道的 EndpointAddress 中不存在 EndpointIdentity 或错误指定了 EndpointIdentity。请确认由 EndpointAddress 指定或暗示的 EndpointIdentity 正确标识了远程终结点。解决:这个错误通常是服务端相关配置修改了,在客户端删除WCF引用,重新添加引用即可返回错误:接收对 http://xxx.svc 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。有关详细信息,请参阅服务器日志。解决:有两种可能:a、在客户端删除WCF引用,重新添加引用b、WCF返回的值无法序列化,WCF不允许返回Object、IList之类的不明确的数据类型,但是可以返回IList的泛型数据,假设需要返回IListFullSoft,需要在接口上添加声明:返回错误:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 / 进行反序列化时出错: xxx方法。InnerException 消息是在行 1、位置 1485 出现错误。 元素/2004/07/父类含有/2004/07/子类数据协定的数据。反序列化程序不知道映射到此协定的类型。请将与子类对应的类型添加到已知类型的列表中,例如,通过使用 KnownTypeAttribute 属性或通过将其添加到传递给 DataContractSerializer 的已知类型的列表等方法。。有关详细信息,请参阅 InnerException。解决:如果接口返回的类型是父类,实际应用中返回了子类,就会出现这种错误,解决方法是在父类定义上增加子类的预定义:调用WCF接口时,有些属性在交互时,值丢失了原因:作为WCF接口的参数,其成员必须有public的set属性,否则不会传递,比如下面的a属性可以在wcf中使用,b属性交互时值无法使用:public aaa{ public int a{get;set;} public int b{get;private set;}}返回未知错误解决:请确认接口交互参数里有没有未定义的枚举值,例如枚举定义如下:enumaaa{aa=1, bb=2} 如果参数有aaa类型,传递3就会出错,因为枚举定义里没有3,如果枚举定义加上Flags属性,就可以传递3了(等于是aaa.aa | aaa.bb)[Flags]enumaaa{aa=1, bb=2}返回错误:无法激活服务,因为它不支持 ASP.NET 兼容性。已为此应用程序启用了 ASP.NET 兼容性。解决:在WCF服务类上增加属性:using System.ServiceModel.Activation;[AspNetCompatibilityRequirements (RequirementsMode=AspNetCompatibilityRequirementsMode.Required)]返回错误:System.ArgumentException: 此集合已经包含方案 h

您可能关注的文档

文档评论(0)

1520520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档