Je cours Classic ASP sur Windows 2008 Server x64 en mode 64 bits. ADODB fonctionne bien en 64 bits avec ASP classique. J'ai un problème avec la mienne .NET COM DLL. J'ai créé une DLL .NET COM avec ce code comme exemple:ASP classique en mode 64 bits et .NET COM problème de registre DLL
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
}
}
}
La DLL est compilée pour Any CPU. Dans ASP créer objet et méthode Execute:
Set test = Server.CreateObject("TestNamespace.TestClass")
test.TestMethod("test string")
Set test = Nothing
Je me inscris DLL à l'aide RegAsm:
%windir%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe /tlb /codebase TestNamespace.dll
Sur la plate-forme x86 l'ASP et la DLL sont en cours d'exécution très bien.
Sur Windows 2008 Server J'ai essayé:
- Compile DLL pour x64 et enregistrer à l'aide ... \ Framework64 \ v2.0.50727 \ RegAsm.exe
- Compile pour différentes plates-formes et de placer dans différents endroits, y compris GAC
- beaucoup plus
Les erreurs (situations différentes):
- Microsoft VBScript erreur d'exécution '800a01ad' Server.CreateObject a échoué
- Erreur d'objet serveur 'ASP 0177: 80070002' Server.CreateObject Échec
- Erreur d'objet serveur 'ASP 0177: 800401f3' Server.CreateObject a échoué
- serveur Erreur d'objet 'ASP 0177: 80131040' Échec de Server.CreateObject
La seule façon de travailler sur Windows 2008 Server x64, lorsque le pool d'applications ASP a été basculé en mode 32 bits. Mais j'en ai besoin pour travailler en 64bit! Je pense que le problème n'est pas avec les autorisations, parce que 32bit ont fonctionné.
Quelqu'un at-il de l'expérience en ASP classique et COM .NET fonctionnant tous les deux en 64 bits?
Trouvé, que tout est ok jusqu'à ce que System.Messaging soit utilisé dans la méthode.Un service Windows, qui consomme des messages, créé et installé pour la plate-forme x64 fonctionne correctement avec System.Messaging. Probablement c'est un problème avec le processus 64bit asp.dll. –