![]() |
Platforms, Frameworks & Libraries »
.NET Framework »
General
Intermediate
License: The Code Project Open License (CPOL)
Call a .NET component from an ASP PageBy Manoj Kumar G (IND)How to call a .NET component from VB6.0/ASP developed in either Microsoft Visual Basic® .NET or Microsoft Visual C#® .NET |
C#, Windows, .NET, Visual Studio, Dev
|
|
Advanced Search |
|
|
|
||||||||||||||||
The following steps outline how to call a .NET component from VB6.0/ASP developed in either Microsoft Visual Basic® .NET or Microsoft Visual C#® .NET.
Launch your Visual Studio .NET
Open your .NET Class Project
Add a reference to the System.EnterpriseServices namespace
At the top of the code file, add the following statements to specify the namespaces needed:
using System.EnterpriseServices;
using System.Runtime.InteropServices;
Imports System.EnterpriseServices
Imports System.Runtime.InteropServices
Add the following statements before the namespace declaration to set the assembly options:
[assembly: ApplicationName("ClassLibrary1")]
[assembly: ApplicationActivation(ActivationOption.Server)]
[assembly: ApplicationAccessControl(false,
AccessChecksLevel=AccessChecksLevelOption.ApplicationComponent)]
<Assembly: ApplicationName("ClassLibrary1")>
<Assembly: ApplicationActivation(ActivationOption.Server)>
<Assembly:ApplicationAccessControl(False,
AccessChecksLevel:=AccessChecksLevelOption.ApplicationComponent)>
These attributes help specify how the .NET assembly will operate with COM+ services. The ApplicationName attribute allows one to specify the name of the COM+ services application that will host the .NET assembly when it is imported into COM+. You can specify any name you would like here. The ApplicationActivation attribute specifies the type of COM+ application being created. This attribute uses an enumeration called ActivationOption which specifies that the application is a server application. This means that when the component is activated, it will be hosted in a process separate from the process that called it. The ApplicationAccessControl attribute specifies whether the component will perform any access level checks.
Generate a strong name for the assembly using the .NET Framework Strong Name Utility (sn.exe). This utility generates a public/private key file that will be incorporated into the assembly. To create this key file, go to a command prompt and change directories to the location where the solution is stored.
Type in the command:
>cd C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin
>sn –k “D:\DotNet Testing\ClassLibrary1\ClassLibrary1\obj\Debug\mykey.snk”
This will create the key file.
Add the strong file name to the assembly by adding an attribute in the AssemblyInfo code file that is part of the project. Locate the AssemblyInfo file in Solution Explorer and click it. In the code file, add the following attribute:
[assembly: AssemblyKeyFile(@"mykey.snk)]
<Assembly: AssemblyKeyFile("mykey.snk")>
This attribute looks for the strong name key file that was previously created in the folder that was created for the solution. If there is an AssemblyKeyFile attribute in the AssemblyInfo file, replace it with this one.
Build the solution. This will create the DLL file.
Create type library file using your DLL file - Register for COM Interop.
Place the DLL file to your virtual directory /bin folder.
Type in the command:
>cd “C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322”
>regasm "D:\DotNet Testing\asp\bin\ClassLibrary1.dll" /tlb /codebase
This will create the TLB file in your bin folder.
Finally, you can call .NET components from VB6 or ASP:
Dim Obj
Set Obj = Server.CreateObject("ClassLibrary1.Class1")
Obj.PostCreate
| You must Sign In to use this message board. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 7 Dec 2005 Editor: Deeksha Shenoy |
Copyright 2005 by Manoj Kumar G (IND) Everything else Copyright © CodeProject, 1999-2009 Web20 | Advertise on the Code Project |