Is the serviced component assembly in the GAC? It should be.

-cv


-----Original Message-----
From: Kuthair Habboush [mailto:khabboush@;HOTMAIL.COM] 
Sent: Mittwoch, 23. Oktober 2002 00:10
To: [EMAIL PROTECTED]
Subject: [ADVANCED-DOTNET] Problem with COM+ and .NET Enum Parameters in
Method definition

Hello,

I am new to this list. I am getting an exception when I'm running a
method
with enumerated parameters in COM+. I can't figure it out for the life
of
me, and any assistance you can provide would be greatly appreciated.

I created a .NET class in C# that interops with COM and is also
installed as
a COM+ SERVER package. The problem is when I have an enumerated type as
a
parameter in a method of my class. Both the .NET class and client
compile.
And I can instantiate the object no problem, but as soon as I run a
method
with an enumerated type as a parameter I get the following exception:
------------
File or assembly name MyComPlusServer, or one of its dependencies, was
not
found.
   at
System.EnterpriseServices.IRemoteDispatch.RemoteDispatchNotAutoDone(Stri
ng
s)
   at
System.EnterpriseServices.RemoteServicedComponentProxy.Invoke(IMessage
reqMsg)
   at
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
msgData, Int32 type)
   at MyComPlusServer.MyComPlusServerClass.DoSomething(CarTypes eMyCar)
in
d:\visual studio projects\mycomplusserver\class1.cs:line 28
   at MyComPlusClient.Form1.button1_Click(Object sender, EventArgs e) in
d:\visual studio projects\mycomplusclient\form1.cs:line 106
------------

Everything compiles fine, and I can install the server into COM+ (using
regsvcs) no problem. This works wonderfully from a VB6 client. It also
works
when the .NET class is installed as a COM+ library application, instead
of a
server application.

Thanks again,
-Kuthair


Here is some sample code:

=========================================
My .NET server class
=========================================
[assembly: AssemblyKeyFile("mysnk.snk")]
[assembly: ApplicationActivation(ActivationOption.Server)]
[assembly: ApplicationID("E6F3F75B-9957-4bc9-BA00-ACAD8D7941A6")]
[assembly: ApplicationName("MyComPlusServer")]
[assembly: Description("Doesn't do much")]


using System;
using System.Runtime.InteropServices;
using System.EnterpriseServices;

namespace MyComPlusServer
{
    [Guid("E04A86A4-883E-4f7d-B4FA-A6A1061DFD72")]
    // Support both early and late-bound calls from an unmanaged client
    [ClassInterface(ClassInterfaceType.AutoDual)]
    // Enable ObjectPooling with these defaults
    [ObjectPooling(true, 4, 12, CreationTimeout = 20000)]
    // Enable JIT activation
    [JustInTimeActivation(true)]
    // Enable statistics
    [EventTrackingEnabled(true)]
    public class MyComPlusServerClass : ServicedComponent
    {
        public enum CarTypes : byte { Ford = 0, Chevy = 22, Chrysler =
5, VW
= 99}

        public MyComPlusServerClass()
        {
        }

        public int DoSomething(CarTypes eMyCar)
        {
            // do somework
            return 100;
        }
    }
}

=========================================
My .NET client
=========================================

        private void button1_Click(object sender, System.EventArgs e)
        {
            try
            {
                MyComPlusServer.MyComPlusServerClass objServerClass =
new
MyComPlusServer.MyComPlusServerClass();


objServerClass.DoSomething(MyComPlusServer.MyComPlusServerClass.CarTypes
.VW);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + System.Environment.NewLine
+
ex.StackTrace);
            }
        }

=========================================


_________________________________________________________________
Choose an Internet access plan right for you -- try MSN!
http://resourcecenter.msn.com/access/plans/default.asp

You can read messages from the Advanced DOTNET archive, unsubscribe from
Advanced DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced 
DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to