TroubleShoot:SilverLight中Wcf调用时出现Not Found等错误
时间:2011-02-25 来源:欣静赏悦
二、项目环境:
SharePoint 2010、SilverLight 4、Sql 2008、Ado.net、WCF
三、错误原因:
一般是在SharePoint上使用时,易出现以下问题:
1、出现跨域问题
2、大数据量传递问题
3、请求超时问题
4、传递实体类不能序列化问题
四、解决方案:
1、添加clientaccesspolicy.xml文件放在IIS的根目录或应用程序下;检查SL中生成的配置文件xxx.ClientConfig 中endpoint address 是否正确
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
2、3、这三个的解决方法可以通过修改Web.Config来解决。
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IDataService"
hostNameComparisonMode="StrongWildcard"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
openTimeout="00:10:00"
closeTimeout="00:10:00"
maxReceivedMessageSize="65536"
maxBufferSize="65536"
maxBufferPoolSize="524288"
transferMode="Buffered"
messageEncoding="Text"
textEncoding="utf-8"
bypassProxyOnLocal="false"
useDefaultWebProxy="true" >
<readerQuotas
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxDepth="2147483647"
maxNameTableCharCount="2147483647"
maxStringContentLength="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
4、接的在实体类字段添加[DataMember]