根据IP调用webservice方案
?
1、创建ClientIPs.xml
<?xml version="1.0" encoding="utf-8" ?>
<IPS>
? <IP>127.0.0.</IP>
? <IP>10.2.16.</IP>
</IPS>
?
2、在web.config的添加appSettings标签中添加 <add key="IPsXml" value="ClientIPs.xml"/>
?
3、在当前项目中添加web服务,由于时间比较紧,就拿目前在开发的VB项目为例。C#简单的
???
???? 核心代码如下:
????#Region "判断ip地址"
??? ''' <summary>
??? ''' 判断是否是允许访问的客户端IP地址
??? ''' </summary>
??? ''' <param name="strIP">客户端IP地址</param>
??? ''' <returns>bool</returns>
??? ''' <remarks></remarks>
??? Public Function IsAllowedIP(ByVal strIP As String) As Boolean
??????? Dim xmlDoc As XmlDocument = New XmlDocument()
??????? xmlDoc.Load(Server.MapPath(System.Configuration.ConfigurationManager.AppSettings("IPsXml")))
??????? Dim rootNode As XmlNode = xmlDoc.DocumentElement '获取根节点
??????? For Each node As XmlNode In rootNode.ChildNodes
??????????? If node.InnerXml.Substring(node.InnerXml.Length - 1,1) = "." Then
??????????????? ' 如果是一个网段地址
??????????????? If strIP.Contains(node.InnerXml) Then
??????????????????? Return True
??????????????? End If
??????????? Else
??????????????? If strIP = node.InnerXml Then
??????????????????? Return True
??????????????? End If
??????????? End If
??????? Next
??????? Return False
??? End Function
#End Region
?
??? ''' <summary>
??? ''' 受限IP得到所有行政许可受理信息
??? ''' </summary>
??? ''' <returns></returns>
??? ''' <remarks></remarks>
??? <WebMethod(EnableSession:=True,Description:="受限IP得到所有行政许可受理信息")> _
??? Public Function GetAcceptances() As DataTable
??????? If IsAllowedIP(Me.Context.Request.ServerVariables("REMOTE_ADDR").ToString()) Then
??????????? Return GetAcceptance()?'调用业务方法
??????? Else
??????????? Return Nothing
??????? End If
??? End Function
?
webservice注释:普通的XML 注释不行,要用特性参数,Description来设置
?
OK这样就好了,弄好部署到服务器上
?
遇到调用的问题:?
webservice远程测试显示 “测试窗体只能用于来自本地计算机的请求”
The test form is only available for requests from the local machine.
解决的方法:在web.config中加入如下配置节内容<webServices>????????? <protocols>???????????? <add name="HttpSoap"/>???????????? <add name="HttpPost"/>???????????? <add name="HttpGet"/>???????????? <add name="Documentation"/>????????? </protocols></webServices>