从外部服务器客户端点击内部网络休息服务

本文关键字:网络 服务 内部 服务器 客户 客户端 端点 从外部 | 更新日期: 2023-09-27 18:20:56

我正在尝试编写客户端代码,以在另一个不包含公共ip地址的内部服务器上访问rest服务。正因为如此,我正试图编写一个小型web服务,以获取所需的id,并从web服务器访问其余服务。

我创建了一个web服务,如下所示,从web服务器访问其余服务,虽然我成功了,但客户端

<System.Web.Services.Webmethod()> _
        Public Shared Function GetService(ByVal id as Integer) as String
            dim serviceUrl as string = "http://192.168.0.87/rest/services/"
            dim httpWebRequest as System.Net.HttpWebRequest = System.Net.WebRequest.Create(serviceUrl)
              httpWebRequest.ContentType = "text/json"
              httpWebRequest.Method = "GET"

              dim httpResponse as System.Net.HttpWebResponse = httpWebRequest.GetResponse()
              Using streamReader as new System.IO.StreamReader(httpResponse.GetResponseStream())
                Return streamReader.ReadToEnd()        
             End Using
        End Function

虽然这对一个调用来说是正确的,但同一个调用的结果会引用URL进行进一步的服务调用,例如获取图像等。

是否有任何.Net应用程序,或任何解决方案可以编写具有外部ip地址和特定路径的服务,并自动将地址服务器端重定向到内部ip地址的rest调用中。

例如,如果客户端命中CCD_ 1,它将通过中间人服务自动转换为CCD_。

例如,203.141.86.2/rest/services实际上是一个真正的地址,它只会转换之后的所有内容并将其放入新地址。注意:现有的解决方案是用web表单编写的,而不是用MVC编写的,所以我不确定是否需要设置一个新的IIS应用程序来将这些调用转换作为webapi来处理。

它基本上就像NAT服务。

有人有什么解决方案吗?提前谢谢。

从外部服务器客户端点击内部网络休息服务

您试图实现的是反向代理。试试nginx。http://nginx.org