红鱼儿

REST easy with kbmMW #16 – Multiple servers using HTTP.sys transport

前文写过使用HTTP.sys转输层(TkbmMWHTTPSysServerTransport),实现一个kbmMW应用服务器。

如果在一台服务器上,同时运行多个,基于TkbmMWHTTPSysServerTransport实现的kbmMW应用服务器,该怎么配置呢?

通常会遇到这样的错误信息,如:“Unable to bind to the underlying transport for … The IP Listen-Only list may contain a reference to an interface which does not exist on this machine.” or “Unable to open file….”.

其原因是Windows需要你来定义,允许服务器侦听的主机。仅仅将URL放在TkbmMWHTTPSysServerTransport组件的URL属性中是不够的。假设你的服务器有多个公共IP,你想基于一个公共IP来运行kbmMW服务器(Web服务器),这样的话,让其他的kbmMW服务器去侦听其他的公共IP地址。

在这种情况下,将url属性设置为Http://xxxx.y/,其中,xxxx是公共IP地址,y是端口号(通常为80)。但是,在尝试启动服务器之前,还需要告诉Windows,Http.sys去侦听该IP地址。

可以通过在命令行下执行此操作(用管理员身份运行CMD,进入命令行模式)。

然后输入下面命令:

netsh http add iplisten xxxx

如果不用管理员运行cmd,会得到错误信息:

 

如果成功添加了http.sys侦听的IP地址,会显示:

现在可以启动kbmMW服务器了。接下来,可以通过键入以下命令检查已定义的Windows的本地网卡(NIC)IP地址,有哪些地址http.sys在监听:

netsh http show iplisten

接下来,你还可以删除IP地址

netsh http delete iplisten x.x.x.x

 https://components4developers.blog/2018/10/18/rest-easy-with-kbmmw-16-multiple-servers-using-http-sys-transport/

上文中,只是说明如何侦听IP地址。更详细的关于netsh的用法,可以参考WCF 部署问题 小总结 (HTTP 不能注册的解决方法)

posted on 2018-10-19 09:12  红鱼儿  阅读(521)  评论(0编辑  收藏  举报