Hello,
I'm running Classic ASP on Windows 2008 Server x64 in 64bit mode. ADODB is running fine in 64bit with classic ASP. I have a problem with mine .NET COM DLL. I have created a .NET COM DLL with such code as an 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
}
}
}
The DLL is compiled for Any CPU. In ASP I create object and execute method:
Set test = Server.CreateObject("TestNamespace.TestClass")
test.TestMethod("test string")
Set test = Nothing
I'm registering DLL using RegAsm:
%windir%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe /tlb /codebase TestNamespace.dll
On x86 platform the ASP and the DLL are running fine.
On Windows 2008 Server I've tried:
- Compile DLL for x64 and register using ...\Framework64 \v2.0.50727\RegAsm.exe
- Compile for different platforms and placing in different locations including GAC
- many more
The errors (different situations):
- Microsoft VBScript runtime error '800a01ad' Server.CreateObject Failed
- Server object error 'ASP 0177 : 80070002' Server.CreateObject Failed
- Server object error 'ASP 0177 : 800401f3' Server.CreateObject Failed
- Server object error 'ASP 0177 : 80131040' Server.CreateObject Failed
The only way it worked on Windows 2008 Server x64, when ASP app pool was switched to 32bit mode. But I need it to work in 64bit! I think the problem is not with permissions, because 32bit have worked.
Anyone have experience in classic ASP and .NET COM both running in 64bit?