0

我正在为 .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,有没有办法考虑主机标头?

4

1 回答 1

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 中指定的端口已被其他进程占用。

于 2012-01-12T09:16:27.477 回答