webservice 不允许使用decompressionEnabled属性

项目接入webservice,出现这个问题,

右键-》添加服务引用,输入webservice地址,确定。

vs自己生成代理类等等,在配置文件里面写入配置,生成的时候出现了这个错误。

查了一下msdn,这个属性只在.netframework 4.0以上才支持,我用的vs2010,添加webservice的时候估计vs是按照.net4.0添加的配置,然后有了这个属性,但其实我的项目是.net3.5,所以,删除这个属性就行了。

 <endpoint address="http://192.168.0.197:4600/WebService/MyUserService.asmx"
        binding="basicHttpBinding" bindingConfiguration="MyUserServiceSoap"
        contract="MyUserService.MyUserServiceSoap" name="MyUserServiceSoap" />
      <endpoint address="http://192.168.0.197:4600/WebService/MyUserService.asmx"
        binding="customBinding" bindingConfiguration="MyUserServiceSoap12"
        contract="MyUserService.MyUserServiceSoap" name="MyUserServiceSoap12" />

默认vs会在配置文件里面写入两个endpoint,有人说会报重复,那是因为你调用的时候没有指定用哪个endpoint,比如我上面的配置,有两个endpoint,我调用的时候这样调用:

MyUserService.MyUserServiceSoapClient client = new MyUserService.MyUserServiceSoapClient("MyUserServiceSoap");

或者:

MyUserService.MyUserServiceSoapClient client = new MyUserService.MyUserServiceSoapClient("MyUserServiceSoap12");

是不会有问题的。

关于报重复的问题,网上搜的结果都是说删掉一个就行,但是最好还是要了解机制,了解为什么。

 

msdn地址:http://technet.microsoft.com/zh-cn/subscriptions/system.servicemodel.configuration.httptransportelement.decompressionenabled

posted @ 2013-04-11 11:17  顾晓北  阅读(451)  评论(0编辑  收藏  举报