去年这个时候开发过一个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>