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. vue + element-ui Table的数据多选,多页选择数据回显,分页记录保存选中的数据。

    业务的需要:我要对与会人员勾选,记录所选的与会人员,并且点击到别的页面上时也要记录所勾选的.第一次尝试,每次点击下一页数据都会清空.然后我就去element ui官网查看了api.实现如下: 在tab ...

  2. java 需要看的书籍

    参考链接:http://www.jianshu.com/p/454fc1e6cbe2 最近要看的有:Effective java  深入理解java 虚拟机  java 并发编程实战 (设计模式的书籍 ...

  3. 链表(list)的实现(c语言)

    链表是一种基本的数据结构,今天练习了一下,所以将代码贴在下面,代码测试通过,代码还可以优化,我会过段时间就会增加一部分或者优化一部分直达代码无法优化为止,我的所有数据结构和算法都会用这样的方式在博客上 ...

  4. L1-008 求整数段和

    给定两个整数A和B,输出从A到B的所有整数以及这些数的和. 输入格式: 输入在一行中给出2个整数A和B,其中−,其间以空格分隔. 输出格式: 首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字 ...

  5. css 课堂笔记

    css:层叠样式表  Cascading( [kæ'skeɪdɪŋ] 级联)Style Sheet css基本语法结构:选择器{ 属性:值; 属性:值: ... } 三种主要的选择器: 标签选择器: ...

  6. node 常见的一些系统问题

    nodde正风生火起,很多介绍却停留在入门阶段,无法投入生产 许多文章在讲第三方类库,可是这些库质量差距较大,一旦遇到问题怎么办 全面了解node核心才能成为一名合格的node开发人员 1. node ...

  7. react-> webstrom 配置

    React Library支持

  8. IoT 通信协议

    /********************************************************************************* * IoT 通信协议 * 说明: ...

  9. git中的needs merge问题

    这个问题是在先“储藏”起来了,后面再调用出来出现的错误. 解决的方法就是通过git add    ,git commit -m  提交上去就可以了.

  10. 怎样取消老毛桃软件赞助商---只需在输入框中输入老毛桃官网网址“laomaotao.org”

    来源:www.laomaotao.org 时间:2015-01-29 在众多网友和赞助商的支持下,迄今为止,老毛桃u盘启动盘制作工具已经推出了多个版本.如果有用户希望取消显示老毛桃软件中的赞助商,那不 ...