我正在为 .NET 使用 WebORB,并且它在我的开发环境中的默认端口 (2037) 上运行没有任何问题。
当我将它部署到我的暂存环境并尝试通过公共 Internet 访问它时,由于它是一个不常见的端口,因此该端口在沿途的许多地方都被阻止,并且我观察到一个红色的 WebORB 徽标,上面有“无法连接到消息传递”的消息服务器”当我访问 WebORB 控制台时。
打开端口是部分解决方案,但任何访问 WebORB 应用程序的人还需要确保他们没有阻塞该端口......所以这并不是一个真正合适的解决方案。
我已经设法让 WebORB 在端口 443 上运行(用于 SSL,因此几乎从不阻塞),但前提是我在 IIS 中没有其他站点与端口 443 绑定。
这也是不可接受的,因为我最终将在同一台服务器上使用端口 443 绑定的另一个站点。
所以,我的问题是:当 IIS 中的另一个站点也绑定到该端口时,是否可以在端口 443(或 80)上运行 WebORB?
更新以下答案
我在 Server 2008R2 上,因此在 IIS7.5 上,我更喜欢在集成模式下运行我的 WebORB 网站。第一篇文章中的说明提到为 Isapi.dll 添加通配符脚本映射 - 这只会在经典模式下调用。
我已经添加了文章建议的所有条目,并将我的站点配置为使用端口 80。在 IIS 中还有其他站点绑定到端口 80。
当我导航到 WebORB 控制台时,我观察到在添加新的 RTMPT 处理程序之前看到的相同行为 - 一个红色的 WebORB 徽标,并且“消息服务器”面板中没有出现任何条目。但是,我确实看到“错误请求,仅支持 RTMPT”。导航到 ~/open/1 时的消息,并且我的 diagnostics.aspx 页面看起来不错。
在日志中,我看到以下内容:
...
WEBORB 信息:为 - \root 添加子范围
WEBORB 信息:范围已注册 - \root WEBORB 信息:WebORB 消息服务器 4.4.0.0 (c) 2003-2010 Midnight Coders, Inc.
WEBORB 信息:正在运行 - 错误
WEBORB 异常:System.Net.Sockets.SocketException (0x80004005):试图以 System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) 的访问权限禁止的方式访问套接字。 Weborb.Messaging.BaseRTMPServer.start() 处的 Net.Sockets.Socket.Bind(EndPoint localEP)
WEBORB 信息:关闭 WebORB 消息服务器
WEBORB 信息:加载类型:Weborb.Management.ServiceBrowser.Browser.AssemblyBrowser
...
我是否需要更改任何其他配置以使控制台能够使用 RTMPT?
此外,鉴于传入的请求必须通过 HTTP,有没有办法考虑主机标头?