Classic ASP in 64-bit mode and .NET COM DLL

I am running Classic ASP on Windows 2008 Server x64 in 64 bit mode. ADODB works fine in 64 bit with classic ASP. I have a problem with my .NET COM DLL. I created a .NET COM DLL with code such as a sample:

using System.Runtime.InteropServices;
namespace TestNamespace
{
    [Guid("C446E97E-B415-4677-B99E-9644657FC98"),
    ProgId("TestNamespace.TestClass"),
    ComVisible(true)]
    public class TestClass
    {
        [ComVisible(true)]
        public void TestMethod(string s)
        {
            //some code that uses System.Messaging to send a message
        }
    }
}

DLL compiled for any CPU. In ASP, I create an object and an execute method:

Set test = Server.CreateObject("TestNamespace.TestClass")
test.TestMethod("test string")
Set test = Nothing

I register a DLL using RegAsm:

%windir%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe /tlb /codebase TestNamespace.dll

On the x86 platform, ASP and DLLs work fine.

In Windows 2008 Server, I tried:

  • Compile DLL for x64 and register using ... \ Framework64 \ v2.0.50727 \ RegAsm.exe
  • Compilation for different platforms and placement in different places, including GAC
  • many more

Errors (different situations):

  • Microsoft VBScript runtime error with error '800a01ad' Server.CreateObject
  • - 'ASP 0177: 80070002' Server.CreateObject
  • 'ASP 0177: 800401f3' Server.CreateObject
  • 'ASP 0177: 80131040' Server.CreateObject

, Windows 2008 Server x64, ASP 32- . , 64-! , , 32 .

- ASP .NET COM, 64-?

+3
2

, , System.Messaging. Windows, , x64, System.Messaging. , 64- asp.dll.

+1

" , 64-!" ? 32- DLLS 64- proc, โ€‹โ€‹ - , ? ?

, 64-, -

, , 64- COM, .

( , 64 , , .)

+1

Source: https://habr.com/ru/post/1715324/


All Articles