• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

The most annoying error in the world! Help Needed Please

S

Steve Le Mon

#1
I've developed a small DLL using the .NET Framework version 2.0 that reads
xml files and writes them to a SQL Server.

As this DLL needs to be launched from VBScript, I've created a COM Interface
for it using the published guidelines. I've done this before and am happy
that I've done everything correctly.

The problem I have is that when I deployed it on my Clients site I cannot
get the thing to run using late binding! Every-time I use the CREATEOBJECT
syntax I get the annoying and unhelpful error 429 - cannot create object.

What is even more annoying is that when I use Word or Excel VBA envirnoment
to test the component using early binding, it works fine.

Why is is that the same physical DLL will work with early binding but not
late binding. What am I missing???

Steve
 

My Computer

S

Steve Le Mon

#3
Hi Andrew

I've been there and its no help. The problem here is this is a hybrid DLL.
It's .NET with a COM Interface grafted onto it, and I'm wondering if this
just adds to the confusion.I've tried to re-register the steps with regsvr
but get a "DLLRegisterServer entry point was not found" I'm guessing this is
because its not fully COM, but as the DLL works with early binding I didn't
think much about it.

The question here is should I be using Regsvr or Regasm... but this doesn't
explain why it works with early binding and not late binding???

Steve


"Andrew Morton" <akm@xxxxxx-press.co.uk.invalid> wrote in message
news:72sb0kFrkkc4U1@xxxxxx

> Steve Le Mon wrote:

>> What am I missing???
>
> Google-fu?
>
> Perhaps this article will help:
> http://support.microsoft.com/kb/828550
>
> Andrew
>
 

My Computer

A

Alex K. Angelopoulos

#4
Regsvr32 only works on COM-based components; you need to use regasm. Also,
for the assembly to be used by any COM client - and NOT just used by an
application hosted in the same directory as the assembly is installed - it
will need to be installed in the global assembly cache.


"Steve Le Mon" <steve_lemon@xxxxxx> wrote in message
news:#8VaDiJrJHA.4364@xxxxxx

> Hi Andrew
>
> I've been there and its no help. The problem here is this is a hybrid DLL.
> It's .NET with a COM Interface grafted onto it, and I'm wondering if this
> just adds to the confusion.I've tried to re-register the steps with regsvr
> but get a "DLLRegisterServer entry point was not found" I'm guessing this
> is because its not fully COM, but as the DLL works with early binding I
> didn't think much about it.
>
> The question here is should I be using Regsvr or Regasm... but this
> doesn't explain why it works with early binding and not late binding???
>
> Steve
>
>
> "Andrew Morton" <akm@xxxxxx-press.co.uk.invalid> wrote in message
> news:72sb0kFrkkc4U1@xxxxxx

>> Steve Le Mon wrote:

>>> What am I missing???
>>
>> Google-fu?
>>
>> Perhaps this article will help:
>> http://support.microsoft.com/kb/828550
>>
>> Andrew
>>
>
>
 

My Computer

A

Alex K. Angelopoulos

#5
By the way, although I don't generally use this since I have control over
machines that will use .NET components, there is an alternative to
installing the assembly in the GAC, and it's probably better for your
situation. You can register the component with a codebase path by using
regasm's /codebase switch. This tells applications precisely where to find
the assembly without reverting to app directory search or using the GAC.
This is a little less invasive and much more like traditional COM
registration.

"Alex K. Angelopoulos" <aka(at)mvps.org> wrote in message
news:#ztcaEKrJHA.3848@xxxxxx

> Regsvr32 only works on COM-based components; you need to use regasm. Also,
> for the assembly to be used by any COM client - and NOT just used by an
> application hosted in the same directory as the assembly is installed - it
> will need to be installed in the global assembly cache.
>
>
> "Steve Le Mon" <steve_lemon@xxxxxx> wrote in message
> news:#8VaDiJrJHA.4364@xxxxxx

>> Hi Andrew
>>
>> I've been there and its no help. The problem here is this is a hybrid
>> DLL. It's .NET with a COM Interface grafted onto it, and I'm wondering if
>> this just adds to the confusion.I've tried to re-register the steps with
>> regsvr but get a "DLLRegisterServer entry point was not found" I'm
>> guessing this is because its not fully COM, but as the DLL works with
>> early binding I didn't think much about it.
>>
>> The question here is should I be using Regsvr or Regasm... but this
>> doesn't explain why it works with early binding and not late binding???
>>
>> Steve
>>
>>
>> "Andrew Morton" <akm@xxxxxx-press.co.uk.invalid> wrote in message
>> news:72sb0kFrkkc4U1@xxxxxx

>>> Steve Le Mon wrote:
>>>> What am I missing???
>>>
>>> Google-fu?
>>>
>>> Perhaps this article will help:
>>> http://support.microsoft.com/kb/828550
>>>
>>> Andrew
>>>
>>
>>
 

My Computer

S

Steve Le Mon

#6
Thanks Alex
Went back over the deployment steps you mentioned and found a small error,
it now works.
I'm suitably embarrassed. Just couldn't see the wood for the trees as they
say

Cheers



"Alex K. Angelopoulos" <aka(at)mvps.org> wrote in message
news:%2309gUJKrJHA.3700@xxxxxx

> By the way, although I don't generally use this since I have control over
> machines that will use .NET components, there is an alternative to
> installing the assembly in the GAC, and it's probably better for your
> situation. You can register the component with a codebase path by using
> regasm's /codebase switch. This tells applications precisely where to find
> the assembly without reverting to app directory search or using the GAC.
> This is a little less invasive and much more like traditional COM
> registration.
 

My Computer

Users Who Are Viewing This Thread (Users: 1, Guests: 0)