dave.russellATalliance-leicesterDOTcoDOTuk
2005-03-17 15:24:19 UTC
We have a series of COM+ applications written in vb.net. Each consists
of a component which is contained in a strong-named DLL hosted in the
GAC.
I am trying to write a "simple" software distribution application which
will allow us
to maintain our development environments - having to manually configure
GAC and COM+ on many remote machines everytime we change a DLL is a
time-consuming error-prone chore.
My application is an intranet asp.net application.
What it needs to do is...
1) Copy a new DLL from a "release directory" to a remote server
2) Install that DLL into the GAC
3) (re)Configure the COM+ application which uses the DLL.
It does (1) and (3) quite happily.
I've tried numerous different ways of doing (2) with limited success.
If I start another process which runs pstools/psexec from the
webapplication's server to execute gacutil on the remote machine, it
WORKS....But only if the webapplication
is running on localhost. if the webapp is running on a server it
executes GACUTIL OK,
but GACUTIL reports an "access denied" error.
If I make the webapplication call a webservice on the remote server and
include
your GAC-API wrapper within that webservice, I *always* get "access is
denied"
as the exception thrown from the HRESULT of the GAC Install. Even if I
attach the admin credentials to the webservice method call and
<impersonate> on the webservice itself. Even if the calling webapp is
running on localhost.
I think I read somewhere that to install into the GAC the code has to
be running with
FullTrust and as an Administrator. I think both of these must be true
(How do I tell
in code?) as I have given "Local Intranet" zone FULLTRUST and the
webservice's current identity is an administrator.
As the exception is thrown by the wrapper, I can't see what's causing
it in Fusion.dll.
Fusion log viewer doesn't shed any light - I don't see any failures.
FileMon doesn't shed any light - I don't see any failures.
I've tried asserting permissions in case it's
something-up-the-callstack that the
"access is denied" is failing on, but I've no idea what to assert,
because I can't
see the real exception.
Please advise what else I can do to fix this.
of a component which is contained in a strong-named DLL hosted in the
GAC.
I am trying to write a "simple" software distribution application which
will allow us
to maintain our development environments - having to manually configure
GAC and COM+ on many remote machines everytime we change a DLL is a
time-consuming error-prone chore.
My application is an intranet asp.net application.
What it needs to do is...
1) Copy a new DLL from a "release directory" to a remote server
2) Install that DLL into the GAC
3) (re)Configure the COM+ application which uses the DLL.
It does (1) and (3) quite happily.
I've tried numerous different ways of doing (2) with limited success.
If I start another process which runs pstools/psexec from the
webapplication's server to execute gacutil on the remote machine, it
WORKS....But only if the webapplication
is running on localhost. if the webapp is running on a server it
executes GACUTIL OK,
but GACUTIL reports an "access denied" error.
If I make the webapplication call a webservice on the remote server and
include
your GAC-API wrapper within that webservice, I *always* get "access is
denied"
as the exception thrown from the HRESULT of the GAC Install. Even if I
attach the admin credentials to the webservice method call and
<impersonate> on the webservice itself. Even if the calling webapp is
running on localhost.
I think I read somewhere that to install into the GAC the code has to
be running with
FullTrust and as an Administrator. I think both of these must be true
(How do I tell
in code?) as I have given "Local Intranet" zone FULLTRUST and the
webservice's current identity is an administrator.
As the exception is thrown by the wrapper, I can't see what's causing
it in Fusion.dll.
Fusion log viewer doesn't shed any light - I don't see any failures.
FileMon doesn't shed any light - I don't see any failures.
I've tried asserting permissions in case it's
something-up-the-callstack that the
"access is denied" is failing on, but I've no idea what to assert,
because I can't
see the real exception.
Please advise what else I can do to fix this.