30. juni 2006 - 12:08Der er
11 kommentarer og 1 løsning
Kald C# DLL fra ASP
Jeg har lavet en DLL i C# - se nedenstående kode* - og registreret denne med regasm.exe. Den figurerer godt nok i listen over COM i Visual Studio, men i ASP får jeg følgende fejl:
Fejltype: Serverobjekt, ASP 0177 (0x80070002) 80070002 /Default.asp, line 7
Kaldet i ASP ser ud som følger:
set myDLLThing = server.createobject("ClassTestHelloWorld.Class1")
response.write myDLLThing.SayHello()
Hvad søren i hatten gør jeg forkert???
DLL kode*
using System; using System.Collections.Generic; using System.Text;
Jeg har sikker snork sovet da der blev gennemgået hvordan man kan bruge .NET programmer i gamle VB/ASP applikationer, men mig bekendt kan det ikke lade sig gøre som her.
Jeg mener at den approach der er til at kalde .NET kode (eks. C#) i en ASP/VBScript løsning er at bruge SOAP interfacet og lave .NET koden som en WebService
ASP/VBS og diverse andre ældre teknologier kan kalde COM komponenter.
.NET kan expose COM interfaces.
COM virker på tværs af teknologier så managed unmanaged er ikke et problem.
Eneste problem er at selvom alle Windows brugere bruger COM i store mængder og enhver ASP eller VB6 programmør kan kalde COM komponenter så er der næsten ingen som forstår COM mystiske verden.
[assembly:AssemblyKeyFile("NCOM.snk")] namespace Demo { public class Classic { public string GetHelloWorld() { return "Hello world 1 !"; } public string HelloWorld { get { return "Hello world 2 !"; } } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.