VB Script没有从工作流程中调用c#方法。我做得对吗?我能够从服务器测试相同的代码。
Option Explicit
Dim testwfhandler
Set testwfhandler= CreateObject("CoreComponentWorkflow.WorkflowHandler")
If Not testwfhandler Is Nothing Then
Call testwfhandler.test()
End If
Set testwfhandler= Nothing
答案 0 :(得分:3)
过去几天我一直在处理类似的问题。
我毫无疑问是注册问题。
在我的情况下,我使用位于以下位置的regasm注册了程序集:
工作流代理是一个32位应用程序,所以我刚刚使用位于以下位置的regasm可执行文件注册了程序集:
像魅力一样工作
另外,请确保构建您的dll以使用任何CPU
答案 1 :(得分:2)
这显然是大会注册的问题。您是否“只使用”RegAsm,还是使用了RegAsm / codebase?
无论如何,在您的注册表中搜索“CoreComponentWorkflow.WorkflowHandler”。你应该找到一个带有大GUID的密钥,下面应该有一系列其他的注册表项。其中一个将被称为InProcServer32,在里面你应该找到一些字符串值,包括“汇编”和“代码库”。
如果找到密钥,请仔细检查值是否正确。如果找不到密钥,请尝试使用RegAsm /codebase <path to your assembly>
答案 2 :(得分:1)
你的VB看起来很好。确保你: 1)注册您的程序集(使用RegAsm)或将其放在GAC中。 2)将代码中的ProgId设置为“CoreComponentWorkflow.WorkflowHandler”。以下是有关ProgIds的更多信息:http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.progidattribute(v=vs.90).aspx