2011-12-22 76 views
0

出现了一些奇怪的问题。 我正在开发一些使用VB6 .dll的复杂Web服务网络。在我之前的文章中,我遇到了一些dll问题,但我们已经解决了它们。在IIS上运行时ASP.NET Web服务中的奇怪异常

因此,新问题是: 当我调试我的服务(那些使用VB6 dll)从Visual Studio的开发服务器 - 一切正常,当我在IIS上发布我的服务时, IIS)。在那之后,当我打电话的.dll方法(按照我的理解,我需要通过引用调用它 - 这就是编译器告诉我),我有一个例外:

“System.Runtime.InteropServices.COMException( 0x800A000D):在类型不匹配......”

其实是发生在这里的第三行:

Object s = (Object)OrderId; 
Object s1 = (Object)lines.Length; 
proxy.OrderRead(ref s, ref s1); 

的OrderId和Legth是整数。

正如我understant这是来自从VB6 .dll文件除外:/

问题可能是什么?为什么它在调试时运行,但在IIS上失败?

回答

0

在vb6中调试时,IDE会为您注册dll。发布后,你可能会在服务器上注册你的vb6 dll。打开命令提示符并切换到dll的位置并运行regsvr32 myvb6.dll

另外,请检查这些设置。 http://support.microsoft.com/kb/281630