2011-12-22 75 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