去年这个时候开发过一个silverlight3的应用程序,当时采用sl3+WCF开发的。在部署过程中遇到了很多问题,总结了一下几点。
1、部署环境必须是windows2003+IIS6.0以上,我尝试采用xp失败。
2、当你安装完IIS6.0后一定要注册 .net FrameWork到IIS。
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
3、注册WCF到IIS
C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Communication Foundation>ServiceModelReg.exe -i
4、将clientaccesspolicy.xml放在iis的根目录下,实现跨域访问。
*****************clientaccesspolicy.xml*******************
<?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>
**********************************************************
5、部分WCF的web.config
*****************wcf的web.config**************************
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="SilverlightApplication3.Web.Service1Behavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBing_IService1" maxBufferPoolSize="6553500" maxReceivedMessageSize="6553500" maxBufferSize="6553500">
<readerQuotas maxArrayLength="6553500" maxBytesPerRead="6553500" maxDepth="6553500" maxNameTableCharCount="6553500" maxStringContentLength="6553500"/>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="SilverlightApplication3.Web.Service1Behavior" name="SilverlightApplication3.Web.Service1">
<endpoint address="" binding="basicHttpBinding" contract="SilverlightApplication3.Web.IService1" bindingConfiguration="BasicHttpBing_IService1">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
</system.serviceModel>