C#使用WebService

 

一、新建webservice

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

引用之后直接就可以使用里面的方法了 命名空间 类名 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 常见问题处理的更多相关文章

  1. 部署webservice常见问题汇总

    问题一 转自http://blog.csdn.net/xingxing513234072/article/details/38615997 处理程序“WebServiceHandlerFactory- ...

  2. webService常见问题

    1.普通字符串(日期形式)转换为XMLGregorianCalendar SimpleDateFormat simpleDateFormat =new SimpleDateFormat("y ...

  3. 1 WebService 常见问题

    <binding name="> <readerQuotas maxStringContentLength=" /> </binding> &l ...

  4. Win7下配置IIS服务器以及网站发布

    本文摘至于:http://heavengate.blog.163.com/blog/static/202381053201391111512986/ 1.vsual Studio 2010下利用本地I ...

  5. WCF常见问题(1) -- WebService/WCF Session Cookie

    原文:WCF常见问题(1) -- WebService/WCF Session Cookie 在.net 3.0推出WCF之前使用的WebService,有的应用有使用Session保持一些信息,在不 ...

  6. 详解WebService开发中四个常见问题(2)

    详解WebService开发中四个常见问题(2)   WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...

  7. 详解WebService开发中四个常见问题(1)

    详解WebService开发中四个常见问题(1)   WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...

  8. PHP调用WEBSERVICE接口常见问题答疑以及总结

    最近的工作项目中,接触到了很多的政府 微信开发项目.对方的外包公司都是使用JAVA作为开发语言,然后通过WEBSERVICE进行接口返回数据到我的项目中.一般情况下,能在浏览器打开并显示数据的接口是直 ...

  9. IIS发布WebService的一些常见问题

    安装IIS过程,在控制面板程序à程序功能à打开或关闭windows功能. 将Internet信息服务中的选项全部选中,点击确定. 验证IIS是否正确安装,等待几分钟后IIS配置完成在浏览器输入http ...

随机推荐

  1. UVALive 4764 dp

    DES: 这是一个新的游戏.给你一套牌.编号从1到100000.正常来说.你手中的牌和这次翻的牌是一样的,就会加一分.但是.如果是999的话.加三分.所以问你最大的分是多少. 貌似是简单的DP吧.(D ...

  2. SQL Server 调优系列基础篇 - 子查询运算总结

    前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...

  3. (C#基础)各种加密学习

    之前,一直想对这个做一个了解,但是总是坚持不下去,很急躁.最近看了几遍文章,很有感触,于是又来重新开始学习,从最最基础的开始——正所谓“慢就是快”.心态变了,继续吧!上代码! using System ...

  4. H5技术干货

    H5技术干货 meta标签相关知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=d ...

  5. start with...connect by子句的浅用

    start with的用法,其基本语法如下: select … from tablename start with 条件1connect by 条件2where 条件3; 但是我在pl/sql中写入以 ...

  6. 全球信息安全会议 Top 50

    信息安全会议在世界范围内举办,下面是全球最值得参加的50个信息安全会议的简介,以时间顺序列出.需要注意的是,这份清单基于2016年的信息撰写,因为具体日期与地点每年或有不同,请至活动官网确认具体的日期 ...

  7. IBM、HPUX、Solaris不同之处

  8. L212

    Just 33 minutes into the New Year, NASA's New Horizons probe made space exploration history, flying ...

  9. php file文件操作函数

    filemtime() 函数: filemtime() 函数返回文件内容上次的修改时间. 若成功,则时间以 Unix 时间戳的方式返回.若失败,则返回 false. <?php echo fil ...

  10. NBUT 1219 Time 2010辽宁省赛

    Time limit   1000 ms Memory limit   131072 kB Digital clock use 4 digits to express time, each digit ...