【发布时间】:2019-10-06 00:29:00
【问题描述】:
我正在维护一个企业 C# 应用程序,该应用程序通过用户定义的 JavaScript 函数(暴露了一些 C# 类型/代理)为最终用户提供可扩展性(想想金融算法)。
我们使用 ClearScript 评估这些函数(以前我们使用另一个名为 Noesis 的库,但我们已经放弃了)。
我想为最终用户提供一种方法来执行非常基本的脚本调试(通过网络界面)。至少 - 检查变量并单步执行/进入函数。
在本地运行应用程序时,我已成功连接到带有 Chrome 的 ClearScript 引擎,并且能够单步执行脚本 - 但是我认为在生产环境中运行各种脚本时,这对最终用户没有意义原因:
- 设置起来可能太棘手了
- 端口分配可能遇到的困难
- 可能的防火墙问题
我真正想要的是 V8 调试器的 SignalR 接口 - Web 应用程序将与 SignalR 交互,而 SignalR 将与 V8 调试器交互。
- 以前有人做过类似的事情吗?
- 是否有我应该查看的相关 .NET 库?
- 我是否认为这似乎是一项相当大的工作?
- 还有其他建议吗?
【问题讨论】:
-
我刚刚看到 github.com/buggerjs/bugger-v8-client 可能与参考客户端 (JavaScript) 相关。
-
对端口 分配 困难的担忧来自多个用户尝试同时调试 ClearScript 的可能性 - 每个 V8 实例都需要监听不同的端口(我们'd 需要允许所有这些端口通过防火墙)。拥有足够多的高编号端口可供选择仍然是一个挑战。
标签: c# .net v8 remote-debugging clearscript