如何在发布使用WCF的silverlight

最近遇到silverlight的发布问题,windows7下发布silverlight和容易,但是如果使用了WCF的话,会有几点问题需要注意

1.WCF在IIS中的安装

在IIS中使用WCF要配置的,具体如下

在命令提示符下运行

"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -i
iisreset

2.WCFconfig的设置,这一点最容易搞错

在ServiceReferences.ClientConfig中

 <client>
            <endpoint address="http://localhost/KioskAdmin/Services/CategoryService.svc"
                binding="customBinding" bindingConfiguration="CustomBinding_CategoryService"
                contract="CategoryServiceReference.CategoryService" name="CustomBinding_CategoryService" />
            <endpoint address="http://localhost/KioskAdmin/Services/UsersService.svc"
                binding="customBinding" bindingConfiguration="CustomBinding_UsersService"
                contract="UsersServiceReference.UsersService" name="CustomBinding_UsersService" />
            <endpoint address="http://localhost/KioskAdmin/Services/CouponService.svc"
                binding="customBinding" bindingConfiguration="CustomBinding_CouponService"
                contract="CouponServiceReference.CouponService" name="CustomBinding_CouponService" />
            <endpoint address="http://localhost/KioskAdmin/Services/EncryptionService.svc"
                binding="customBinding" bindingConfiguration="CustomBinding_EncryptionService"
                contract="EncryptionServiceReference.EncryptionService" name="CustomBinding_EncryptionService" />
            <endpoint address="http://localhost/KioskAdmin/Services/FunctionService.svc"
                binding="customBinding" bindingConfiguration="CustomBinding_FunctionService"
                contract="FunctionServiceReference.FunctionService" name="CustomBinding_FunctionService" />
            <endpoint address="http://localhost/KioskAdmin/Services/LoginService.svc"
                binding="customBinding" bindingConfiguration="CustomBinding_LoginService"
                contract="LoginService.LoginService" name="CustomBinding_LoginService" />
            <endpoint address="http://localhost/KioskAdmin/Services/MediaService.svc"
                binding="customBinding" bindingConfiguration="CustomBinding_MediaService"
                contract="MediaServiceReference.MediaService" name="CustomBinding_MediaService" />
            <endpoint address="http://localhost/KioskAdmin/Services/ProductService.svc"
                binding="customBinding" bindingConfiguration="CustomBinding_ProductService"
                contract="ProductServiceReference.ProductService" name="CustomBinding_ProductService" />
            <endpoint address="http://localhost/KioskAdmin/Services/RoleService.svc"
                binding="customBinding" bindingConfiguration="CustomBinding_RoleService"
                contract="RoleServiceReference.RoleService" name="CustomBinding_RoleService" />
            <endpoint address="http://localhost/KioskAdmin/Services/StandbyService.svc"
                binding="customBinding" bindingConfiguration="CustomBinding_StandbyService"
                contract="StandbyServiceReference.StandbyService" name="CustomBinding_StandbyService" />
            <endpoint address="http://localhost/KioskAdmin/Services/StoreService.svc"
                binding="customBinding" bindingConfiguration="CustomBinding_StoreService"
                contract="StoreServiceReference.StoreService" name="CustomBinding_StoreService" />
            <endpoint address="http://localhost/KioskAdmin/Services/UploadService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_UploadService"
                contract="UploadServiceReference.UploadService" name="BasicHttpBinding_UploadService" />
        </client>

这里localhost要替换成你的公网IP或域名,原因很简单,silverlight是客户端的,当你在客户端输入http://localhost/时只会找到你的本地计算机,而不是服务器,因此要替换为你的服务器IP,否则就是下图

image

3.也容易搞错的一点,就是跨域文件clientaccesspolicy.xml的位置

一定要在IIS的根目录,一般为C:\inetpub\wwwroot

clientaccesspolicy.xml下载

posted @ 2010-01-01 09:18  柯南  阅读(2154)  评论(3)    收藏  举报