我正在使用WebORB for .NET,我在开发环境中运行默认端口(2037)时没有遇到任何问题。
当我将它部署到我的登台环境并尝试通过公共互联网访问它时,这个端口在途中的许多点被阻止,因为它是一个不常见的端口,我观察到一个红色的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徽标,并且“Messaging Server”面板中没有出现任何条目。但是,我确实看到了“错误的请求,只支持RTMPT”。导航到〜/ open / 1时的消息,我的diagnostics.aspx页面看起来很好。
在日志中,我看到以下内容:
...
WEBORB INFO:为 - \ root
添加子范围WEBORB INFO:范围已注册 - \ root WEBORB INFO:WebORB Messaging Server 4.4.0.0(c)2003-2010 Midnight Coders,Inc。
WEBORB INFO:正在运行 - False
WEBORB EXCEPTION:System.Net.Sockets.SocketException(0x80004005):尝试以其访问权限禁止的方式访问套接字 在System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot,SocketAddress socketAddress) 在System.Net.Sockets.Socket.Bind(EndPoint localEP) 在Weborb.Messaging.BaseRTMPServer.start()
WEBORB INFO:关闭WebORB消息服务器
WEBORB INFO:加载类型:Weborb.Management.ServiceBrowser.Browser.AssemblyBrowser
...
我是否需要更改任何其他配置以使控制台能够使用RTMPT?
另外,鉴于传入的请求必须通过HTTP,是否无法考虑主机头?
答案 0 :(得分:0)
您要问的是,您是否可以通过端口80或443路由RTMP连接。由于这些端口由IIS管理,因此传入连接必须基于HTTP。您的RTMP客户端可以分别使用RTMPT或RTMPS通过端口80或443进行连接。在这种情况下,您不需要“在这些端口上运行WebORB”,而是将WebORB配置为使用RTMPT或RTMPS。请参阅以下文档:
在WebORB中配置RTMPT:http://www.themidnightcoders.com/fileadmin/docs/dotnet/v4/guide/rtmpt.htm
在WebORB中配置RTMPS: http://www.themidnightcoders.com/fileadmin/docs/dotnet/v4/guide/rtmps_support.htm
希望这会有所帮助。
更新:如果目标是通过RTMPT路由管理控制台的流量,它将无法与当前发布的版本一起使用。控制台可以动态确定RTMP端口,但它将坚持RTMP协议,并且没有切换到RTMPT的代码。这是我们将要研究的内容。 至于你得到的异常,它的发生是因为你在Global.asax中指定的端口已被其他进程占用。