(26)C#WebService
一、创建webservice
vs2008创建
vs2019创建
选择
添加项目选择
二、发布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>