从 Web UI 中的 VBScript 函数调用 C# 函数

本文关键字:函数调用 函数 VBScript 中的 Web UI | 更新日期: 2023-09-27 18:33:02

我需要从 Azure 网站托管上的 VBScript 函数(或合适的解决方法)中调用或至少将参数传递到 C# 函数Microsoft即:

Function VBScriptFnc(param_1, param_2, param_3)
  Dim flag;
  flag = 1
    'call the C# function or somehow pass parameters into C# function'
    csharpFunction(param_1, param_2, param_3)

  VBScriptFnc = flag
End Function

从 Web UI 中的 VBScript 函数调用 C# 函数

VBScript 有 5 个窗口进入 .NET 世界:

  1. 通过对某种类型的.NET处理程序(例如.aspx,HTTP处理程序,MVC或WebAPI控制器)执行HTTP POST/GET操作。
  2. 将数据写入文件或数据库,以便 .NET 进程选取。
  3. 通过将 .NET 程序集(类库)公开为 COM 对象并在 Windows 注册表中添加相应的条目(手动或使用命令实用程序),以便可以直接从 VBScript 调用它。请参阅此文章。
  4. 使用 .NET 创建直接从 VBScript 运行的可执行文件。
  5. 使用 PowerShell 调用
  6. .NET 程序集,并使用 VBScript 调用 PowerShell。

网站上最直接的选择是使用 GET 或 POST,因为您将避开 ACL 和 COM 注册的雷区,但如果您必须走另一条路,我会说 PowerShell 是您最好的选择,其次是 COM 互操作作为第三选择。

您需要通过将 COMVisibleAttribute 设置为 true 来将程序集标记为 COM 可见(如果只想公开单个类型,则可以在程序集级别或在类级别)。

接下来,您将它注册到:

regasm /codebase MyAssembly.dll

最后从 VBScript 调用它:

dim myObj
Set myObj = CreateObject("MyNamespace.MyObject")

这个答案最初由达林·季米特洛夫发布在这里。