Re: SecurityException: Request Failed on CreateInstanceAndUnwrap

From: Bo George (BoGeorge_at_discussions.microsoft.com)
Date: 07/28/05


Date: Thu, 28 Jul 2005 12:30:02 -0700

Here is the full stack trace:
==========================
Server stack trace:
   at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder
binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr,
Binder binder, Object[] args, CultureInfo culture, Object[]
activationAttributes)
   at System.Activator.CreateInstance(String assemblyName, String typeName,
Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args,
CultureInfo culture, Object[] activationAttributes, Evidence securityInfo,
StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(String assemblyName, String typeName,
Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args,
CultureInfo culture, Object[] activationAttributes, Evidence securityInfo)
   at System.AppDomain.CreateInstance(String assemblyName, String typeName,
Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args,
CultureInfo culture, Object[] activationAttributes, Evidence
securityAttributes)
   at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String
typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder,
Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence
securityAttributes)
   at
System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(MethodBase
mb, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext,
Object[]& outArgs)
   at
System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
=============================

The Nunit code is actually creating the app domain but I do have the source
so I can change it if necessary. I don't know that any app domain policies
are being applied but I will look into this. Would I look for this using
caspol or through the "Microsoft .NET Framework 1.1 Configuration" tool? The
evidence for the new domain is created from the evidence from the
currentdomain.

Evidence baseEvidence = AppDomain.CurrentDomain.Evidence;
Evidence evidence = new Evidence(baseEvidence);

Let me know if this is not enough information and I can see if I can put
together a small code sample. The one real hitch in this is that the COM+
application that is hosting the .NET assemblies is Groove and I probably
cannot even attempt to represent it in code.

"Nicole Calinoiu" wrote:

> "Bo George" <BoGeorge@discussions.microsoft.com> wrote in message
> news:F2730B27-B9BB-4D08-AFA8-9516A2E07C48@microsoft.com...
> >I am referencing the NUnit libraries in an assembly that is hosted by a
> >COM+
> > application. Within NUnit it creates a "runner" app domain and then calls
> > CreateInstanceAndUnwrap to create an instance of a class within a unit
> > test
> > assembly.
>
> Is it your code that's creating the app domain or some other code? Do you
> know if any app domain policy is being applied or if any additional evidence
> is being provided for the app domain or the target class assembly?
>
>
> > I get a SecurityException on this method when it is executed
> > within the bounds of a COM+ application, even though it is actually in a
> > .NET
> > assembly.
>
> Could you please provide the full exception details (incl. stack trace
> listing) as returned from its ToString method?
>
>
>
> > If I refernce the same NUnit libraries and the same assembly calls them
> > but
> > is hosted in a .NET forms application I do not get any SecurityExceptions
> > on
> > the CreateInstanceAndUnwrap call.
> >
> > I've tried several imperative and declaritve security options at the
> > assembly, class and method levels but so far nothing has worked. Has
> > anyone
> > encountered this or have any suggestions on other things to try?
>
> There are several possible reasons for the difference. App domain policy is
> one. Limited CAS permission grants to other assemblies on the call stack is
> another. Might you be able to provide a minimal sample
> (http://www.yoda.arachsys.com/csharp/complete.html) that demonstrates the
> problem?
>
>
>



Relevant Pages

  • Re: ADO in D2005
    ... Next, look for TADOConnection. ... at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder ... binder, Objectargs, CultureInfo culture, ObjectactivationAttributes) ... Binder binder, Objectargs, CultureInfo culture, Object ...
    (borland.public.delphi.database.ado)
  • EIF and Web Serivces
    ... y parameters, EventSource eventSource) ... invokeAttr, Binder binder, Objectparameters, CultureInfo culture, Boolean ... at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder ...
    (microsoft.public.vsnet.enterprise.tools)
  • TypeDelegator ArgumentException
    ... at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder ... binder, Objectargs, CultureInfo culture, ObjectactivationAttributes) ... Binder binder, Objectargs, CultureInfo culture, Object ...
    (microsoft.public.dotnet.framework.remoting)
  • MSExchangeOMA 1507 on SBS2003
    ... On an single SBS2003 system, i.e. domain controller, exchange server etc.. ... invokeAttr, Binder binder, Objectparameters, CultureInfo culture, Boolean ... at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder ...
    (microsoft.public.exchange.admin)
  • Calling remote VB6 Com components in c#
    ... at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, ... Binder binder, Objectargs, CultureInfo culture, Object ... at System.Activator.CreateComInstanceFrom(String assemblyName, ...
    (microsoft.public.dotnet.languages.csharp)