WebORB 可以“共享”吗? IIS 中另一个站点的端口?

发布于 2024-12-26 04:00:23 字数 1608 浏览 3 评论 0原文

我正在使用 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 徽标,并且“消息传递服务器”面板中没有出现任何条目。但是,我确实看到“错误请求,仅支持 RTMPT”。导航到 ~/open/1 时出现消息,并且我的diagnostics.aspx 页面看起来不错。

在日志中我看到以下内容:

...

WEBORB INFO:为 - \root 添加子范围

WEBORB INFO:范围已注册 - \root WEBORB 信息:WebORB 消息传递服务器 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 套接字地址) 在 System.Net.Sockets.Socket.Bind(EndPoint localEP) 在 Weborb.Messaging.BaseRTMPServer.start()

WEBORB INFO:关闭 WebORB 消息服务器

WEBORB INFO:加载类型:Weborb.Management.ServiceBrowser.Browser.AssemblyBrowser

...

我需要更改任何其他配置才能启用控制台使用RTMPT?

另外,考虑到传入请求必须通过 HTTP,是否没有办法考虑主机标头?

I'm using WebORB for .NET and I've had no problems with it running on its default port (2037) in my development environment.

When I deploy it to my staging environment and attempt to access it over the public internet, this port is blocked at many points along the way as it's an uncommon port, and I observe a red WebORB logo with the message "can not connect to messaging server" when I access the WebORB console.

Opening the port is a partial solution, but anyone accessing WebORB's applications will also need to ensure they're not blocking that port... so it's not really a proper solution.

I have managed to get WebORB running on port 443 (which is used for SSL, and therefore almost never blocked), but only if I have no other sites in IIS with a port 443 binding.

This is also unacceptable as I will eventually have another site on the same server with a port 443 binding.

So, my question is: is it possible to run WebORB on port 443 (or 80), when another site in IIS is also bound to that port?

Update following answer

I'm on Server 2008R2, and therefore IIS7.5, and I'd prefer to run my WebORB website in integrated mode. The instructions in the first article mention adding a wildcard script map for Isapi.dll - this will only be invoked in classic mode.

I've added all of the entries that the article suggests, and have configured my site to use port 80. There are other sites bound to port 80 in IIS.

When I navigate to the WebORB console, I'm observing the same behaviour I saw before adding the new RTMPT handlers - a red WebORB logo and no entries appearing in the "Messaging Server" panel. However, I do see the "Bad request, only RTMPT supported." message when navigating to ~/open/1, and my diagnostics.aspx page looks fine.

In the log I see the following:

...

WEBORB INFO:adding child scope for - \root

WEBORB INFO:scope registered - \root
WEBORB INFO:WebORB Messaging Server 4.4.0.0 (c) 2003-2010 Midnight Coders, Inc.

WEBORB INFO:is running - False

WEBORB EXCEPTION:System.Net.Sockets.SocketException (0x80004005): An attempt was made to access a socket in a way forbidden by its access permissions
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at Weborb.Messaging.BaseRTMPServer.start()

WEBORB INFO:shutting down WebORB Message Server

WEBORB INFO:loading type: Weborb.Management.ServiceBrowser.Browser.AssemblyBrowser

...

Do I need to alter any other config to enable the console to use RTMPT?

Also, given that incoming requests must be over HTTP, is there no way to consider host headers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼角的笑意。 2025-01-02 04:00:23

您要问的是是否可以通过端口 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 中指定的端口已被其他进程占用。

what you are asking is whether you can route RTMP connections via port 80 or 443. Since these ports are managed by IIS, the incoming connections must be HTTP-based. Your RTMP clients can connect via port 80 or 443 by using RTMPT or RTMPS respectively. In that case, you do not need to "run WebORB on these ports", but instead configure WebORB to use RTMPT or RTMPS. Please see the following doc:

Configuring RTMPT in WebORB: http://www.themidnightcoders.com/fileadmin/docs/dotnet/v4/guide/rtmpt.htm

Configuring RTMPS in WebORB:
http://www.themidnightcoders.com/fileadmin/docs/dotnet/v4/guide/rtmps_support.htm

Hope this helps.

UPDATE: If the goal is to route the management console's traffic via RTMPT, it will not work with the currently released version. The console can dynamically determine the RTMP port, but it will stick to the RTMP protocol and does not have the code to switch to RTMPT. This is something we will look into.
As for the exception you're getting, it occurs because the port you specified in Global.asax is already taken by some other process.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文