首页 > 解决方案 > 调用 com 成员函数时 vbscript 中的过程调用或参数无效

问题描述

我在 regasm.exe 中注册了 ac# dll,我试图在我的经典 asp 应用程序上调用它,下面是我的代码部分:

我正在向函数发送一个字典对象作为参数

Dim parameters                          
    Set parameters=Server.CreateObject("Scripting.Dictionary")
                            For Each Item1 In Request.Form
                                fieldName = Item1
                                fieldValue = Request.Form(Item1)                                
                                parameters.Add fieldName, fieldValue
    Next

这是我调用函数的地方

Set CudExternal=Server.Createobject("CudExternal.Security") 
Set signature = CudExternal.sign(parameters)

当我尝试调用该函数时,出现此错误。

下面是我的dll代码:

public class Security
    {
        private const String SECRET_KEY = "dd6b7d26fb0c4db7891b28718a1a468";

        public string sign(IDictionary<string, string> paramsArray)
        {
            return sign(buildDataToSign(paramsArray), SECRET_KEY);
        }

        private string sign(String data, String secretKey)
        {
            UTF8Encoding encoding = new System.Text.UTF8Encoding();
            byte[] keyByte = encoding.GetBytes(secretKey);

            HMACSHA256 hmacsha256 = new HMACSHA256(keyByte);
            byte[] messageBytes = encoding.GetBytes(data);
            return Convert.ToBase64String(hmacsha256.ComputeHash(messageBytes));
        }

        private string buildDataToSign(IDictionary<string, string> paramsArray)
        {
            String[] signedFieldNames = paramsArray["signed_field_names"].Split(',');
            IList<string> dataToSign = new List<string>();

            foreach (String signedFieldName in signedFieldNames)
            {
                dataToSign.Add(signedFieldName + "=" + paramsArray[signedFieldName]);
            }

            return commaSeparate(dataToSign);
        }

        private string commaSeparate(IList<string> dataToSign)
        {
            return String.Join(",", dataToSign);
        }

        public string outputr(string data)
        {
            return data;
        }
    }

我该如何解决??...在​​此先感谢。

标签: invalid-argumentinvalidargumentexception

解决方案


推荐阅读