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

Posted 富坚老贼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(26)C#调用WebService实例和开发相关的知识,希望对你有一定的参考价值。

 一、创建webservice

 

 

二、发布webservice

1.正式发布

(1)配置IIS

自己在局域网用的话,只需1,2,3 三步

1:网站的名称,将来IIS里有多个网站时可以方便区分

2:文件的本地路径

3:webserice的端口,默认80

 

(2) 发布路径

 

(3)访问webService

http://localhost:8011/Service.asmx

 

 

原工程下的Service名

 

2.测试发布

(1)使用vs开发服务器

vs2008自带  IIS Express可以用来调试程序.

 

运行后,直接访问地址:http://localhost:53881/

Service.asmx 是webService网址,也就是 http://localhost:53881/Service.asmx

 

 

数据库交互时报这个错,目前不知道怎么解决。。

 

(2)使用IIS web服务器

VS 映射 iis时,创建物理路径为vs程序的根路径下

 

 

更改应用程序池,默认和网站名称一样

更改为2.0

 

点击创建虚拟目录

 

访问地址  http://localhost:8011/Service.asmx

 

报这个错误是因为新建的网站的物理路径不是VS代码的径路,或者这个网站没开。

 

可能是应用程序池没改成.net2.0

 

 

 

 

四、C#引用、更新webservice

引用webService

选中工程右键-添加web引用

 

 

1:输入webservice地址

2:前往

3:输入web引用名

4:点击添加引用

 

更新webService

当webservice增加了调用方法时,需要更新webSevice

 

这篇文章,先后写过几次截图的上下文不对应。但最基本的使用方法能满足

 

 

 

 如果报此错误

System.Web.HttpRequestValidationException: 从客户端(xml="<?xml version="1.0" ...")中检测到有潜在危险的 Request.Form 值。
   在 System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection)
   在 System.Web.HttpRequest.<>c__DisplayClass280_0.<ValidateHttpValueCollection>b__0(String key, String value)
   在 System.Web.HttpValueCollection.EnsureKeyValidated(String key)
   在 System.Web.HttpValueCollection.Get(String name)
   在 System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection)
   在 System.Web.Services.Protocols.htmlFormParameterReader.Read(HttpRequest request)
   在 System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
   在 System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()


因为如果Web表单中有输入类似于Html标签之类的文本,在通过Request.QueryString或者Request.Form传递这些值的时候,就会触发这样的异常,出于脚本注入等安全性考虑。
在config system.web标签下的httpRuntime里添加 requestValidationMode="2.0" 即可,注意调试后删除
  <system.web>
    <compilation debug="true" targetFramework="4.6"/>
    <httpRuntime targetFramework="4.6" requestValidationMode="2.0"/>
  </system.web>

 

 

以上是关于(26)C#调用WebService实例和开发的主要内容,如果未能解决你的问题,请参考以下文章

C#调用webservice wsdl实例

C#调用webservice wsdl实例

C# 调用java webservice 接口

c#根据wsdl文件调用webservice接口

C# winForm添加webservice接口

cxf调用c#的webservice