C#使用WebService 常见问题处理

摘要:
--将删除以下节点--˃因此,删除节点可以在引用页面时指定bindingConfiguration名称:例如,ServiceReference.WebServiceSoapweb=newWebServiceSoapClient;调用webservice返回数据时,会出现以下错误:已超过传入消息的最大消息大小配额。若要增加配额,请使用MaxReceivedMessageSize属性ibute在相应的绑定元素上。这要求在调用web时使用MaxReceivedMessageSize属性。在服务解决方案中,在web中配置它。配置或应用程序。config:注意在哪个节点下添加红色字体的配置。

C#使用WebService

 

一、新建webservice

  1. 新建项目→asp.net Web服务应用程序
  2. 或者在现有项目中 点击右键 新建web服务程序asmx
  3. C#使用WebService 常见问题处理第1张
  4. 只要在webservice类里面 的方法 标注为【WebMethod】就成为别人可以调的方法
  5.                       
  6. 如果要返回DataTable  
  7. 只要 DataTable.TableName 不为空, 即可返回 否则不行.
  8. 二、webservice调用

C#使用WebService 常见问题处理第2张C#使用WebService 常见问题处理第3张C#使用WebService 常见问题处理第4张

引用之后直接就可以使用里面的方法了 命名空间 类名 client=new 类; client.方法()

常用错误

①无法加载协定为“ServiceReference1.InterfaceSoap”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的

如果出现以上错误是因为第一次引用webservice的时候已经在webconfig里面产生了<endpoint>配置节点,首次运行的时候又一次加了那么一个配置节点重复了,需要手动删除一个节点原因是在web.config 文件中多次引用了“添加外部引用”

复制代码
 <client>
      <endpoint address="http://218.90.168.115:8000/PJSDFacade/PJSD/Interface.asmx"
        binding="basicHttpBinding" bindingConfiguration="InterfaceSoap"
        contract="ServiceReference1.InterfaceSoap" name="InterfaceSoap" /> <!-- 下面节点删除-->
      <endpoint address="http://218.90.168.115:8000/PJSDFacade/PJSD/Interface.asmx"
        binding="customBinding" bindingConfiguration="InterfaceSoap12"
        contract="ServiceReference1.InterfaceSoap" name="InterfaceSoap12" />
    </client>
复制代码
所以删掉一个节点既可(如查引用的是WebServiceSoap,删掉WebServiceSoap1的有关节点,反之~)

也可以在页面引用的时候指定bindingConfiguration名字:

如:ServiceReference.WebServiceSoap web = new WebServiceSoapClient("InterfaceSoap");

在调用webservice返回数据的时候, 出现以下错误:

已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性

这个就需要在调用webservice的解决方案中,在web.config或者app.config中配置一下:注意红色字体为哪个节点下加的哪些配置。

复制代码
  <system.serviceModel>
        <bindings >
              <basicHttpBinding>
                    <binding name="InterfaceSoap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"   />
              </basicHttpBinding>
              <customBinding>
                    <binding name="InterfaceSoap12"   >
                          <textMessageEncoding messageVersion="Soap12" />
                          <httpTransport />
                    </binding>
              </customBinding>
        </bindings>
        <client>
              <endpoint address="http://218.90.168.115:8000/PJSDFacade/PJSD/Interface.asmx"
                    binding="basicHttpBinding" bindingConfiguration="InterfaceSoap"
                    contract="ServiceReference.InterfaceSoap" name="InterfaceSoap" />
             
        </client>
    </system.serviceModel>
复制代码

   如果在本地测试webservice可以运行,在远程却显示“测试窗体只能用于来自本地计算机的请求”或者"The test form is only available for requests from the local machine. ",那是因为没有开启远程访问的原因。      大家都知道,Web服务做好后,发布在网上,别人要调用你提供的接口时,是无法打开测试窗体的,这让很多的朋友都蛮郁闷,为什么别人提供的服务接口就能够打开测试窗体,而我的就不行呢?是不是我的代码写的有问题呢?其实不是这样的,下面,我就来教你如何实现这个功能,让客户端也能够打开测试窗体。 1:在web.config的</system.web>中间加入如下配置节内容 <system.web> <webServices>          <protocols>             <add name="HttpSoap"/>             <add name="HttpPost"/>             <add name="HttpGet"/>             <add name="Documentation"/>          </protocols> </webServices> </system.web> 2.通过编辑 Machine.config 中的 <protocols> 节为计算机上的所有 Web 服务启用这些协议。下面的示例启用了 HTTP GET、HTTP POST 及 SOAP,此外还从本地主机启用了 HTTP POST: <protocols> <add name="HttpSoap"/> <add name="HttpPost"/> <add name="HttpGet"/> <add name="HttpPostLocalhost"/> <!-- Documentation enables the documentation/test pages --> <add name="Documentation"/> </protocols> http://stu-xu.i.sohu.com/blog/view/170429191.htm http://blog.csdn.net/wangtao790108/article/details/5568281

免责声明:文章转载自《C#使用WebService 常见问题处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇db2性能优化bootstrap-table 选择行,并且获得选中行的所有数据内容下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#调用WebService实例和开发(转)

1.1、Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。 XML:(Extensible Mark...

Vue-CLI 3.x 设置反向代理

最近在项目中使用了Vue CLI 3.0版本,项目中需要设置反向代理解决跨域问题,下面记录一下设置过程。 新建配置文件 (vue-cli3.x官网的配置文档 https://cli.vuejs.org/zh/config/#devserver-proxy) 在项目的根目录下新建vue.config.js文件,自Vue CLI 3开始,项目中所有的配置...

Linux源码Kconfig文件语法分析

Kconfig是我们进行内核配置的关键文件,用于生成menuconfig的界面并生成最终确定编译选项的.config文件。关于Kconfig文件的编写规则,在Documentation/kbuild/kconfig-language.txt有详尽的叙述。这里主要用实例进行语法分析。 config 确定了条目前面是否有选项,menuconfig界面中的条目中...

交换机VLAN、 TRUNK 、VTP 配置

交换机VLAN、 TRUNK 、VTP 配置 1. 配置 CISCO 二层交换机的IP 地址(catalyst 2950 为例) SW1(config)#int vlan 1 //进入管理接口interface vlan 1 SW1(config-if)#ip address 11.1.1.2 255.255.255.0 //配置IP 地址 SW1(con...

为什么交换机支持ipv6却不能配置?

测试设备是一台Catalyst3750,从思科官网查看Catalyst3750对IPv6的支持情况: Table 7Catalyst 3750, 3560, 3560-C, 2960, 2960-S and 2960-C Switches and Cisco EtherSwitch Service Module Features and the Minim...

Flask web开发之路七

今天写SQLAlchemy数据库  首先介绍ORM的概念: ORM,Object类,Relationship:关系,Mapping:映射,也就是模型关系映射 flask-sqlalchemy是一套ORM框架 ORM的好处:可以让我们操作数据库跟操作对象一样,非常方便,因为一个表就抽象成一个类,一条数据就抽象成该类的一个对象;把高层的面向对象操作转换成低层的...