Fabio, thanks for pointing me in the right direction. Between your help with telling me about needing to recompile the NHibernate.ByteCode.Castle library with Castle Dynamic Proxy 2.2, and the help from some users over in the Castle user group I was able to get everything up and running in Medium Trust. We'll see if I hit any limitations down the road, but for the time being I'm able to create and query records which is a 100% further than where I was last week.
For those who are struggling getting this to work in Medium Trust, I jotted down the steps I took to get it to work over in the Castle Group: http://groups.google.com/group/castle-project-users/browse_thread/thread/2451ef352523865f?hl=en One last question... I was unable to get the <reflection-optimizer use="false"/> attribute to work in the hibernate.cfg.xml file. I worked around it by doing this intead: NHibernate.Cfg.Environment.UseReflectionOptimizer = false; config = new Configuration().Configure(); Should the XML configuration be working? On Jan 22, 1:12 am, Sam Kimmel <[email protected]> wrote: > I downloaded the Castle Dynamic Proxy trunk and noticed that there was > not an AssemblyInfo file so I added one and slipped in the > AllowPartiallyTrustedCallers attribute. I built it succesfully, but > when I try to use it I get the error below. I noticed some .build > files scattered throughout the project so I'm guessing that they do > not use the Visual Studio build, but something like Nant. That would > also explain some other things like my assembly being named > Castle.DynamicProxy instead of Castle.DynamicProxy2 and the inability > to do a Release build. > > While I'm learning quite a bit about the different programs everyone > uses for open souce (SVN clients, NANT, SourceForge), I'm getting > tired of staying up every night until 2 a.m. trying to figure out how > to get a simple, 1 POCO example project running in Medium Trust. I've > invested so much time into this that I don't want to turn back now, > but I'm running out of options. I can't afford to spend too much more > time trying to make this work. > > Probably the thing that is most dissappointing is that there are > several blogs and resources on the web explaining how to get > NHibernate working in Medium Trust, but 95% of them are out of date. > From what I read, it sounded like Castle Dynamic Proxy 2.2 should have > fixed the Medium Trust issues, but as you can see from the previous > error I posted, there is still something weird going on. > > Anyway, it appears to be a Castle issue and not an NHibernate one. > I'll try learning a little about NANT tomorrow and see if I can get a > clean build with the APTCA attribute using that. If that doesn't > work, how stable was the NH 2.0.1 release (the one used in Proxy > Generators Beta 621)? How much functionality/optimization/bug fixes > would I be missing out on if I used that instead of 2.1.2? > > ======================================= > > Could not load file or assembly 'Castle.DynamicProxy2' or one of its > dependencies. The located assembly's manifest definition does not > match the assembly reference. (Exception from HRESULT: 0x80131040) > Description: An unhandled exception occurred during the execution of > the current web request. Please review the stack trace for more > information about the error and where it originated in the code. > > Exception Details: System.IO.FileLoadException: Could not load file or > assembly 'Castle.DynamicProxy2' or one of its dependencies. The > located assembly's manifest definition does not match the assembly > reference. (Exception from HRESULT: 0x80131040) > > Source Error: > > An unhandled exception was generated during the execution of the > current web request. Information regarding the origin and location of > the exception can be identified using the exception stack trace > below. > > Assembly Load Trace: The following information can be helpful to > determine why the assembly 'Castle.DynamicProxy2' could not be loaded. > > WRN: Assembly binding logging is turned OFF. > To enable assembly bind failure logging, set the registry value [HKLM > \Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. > Note: There is some performance penalty associated with assembly bind > failure logging. > To turn this feature off, remove the registry value [HKLM\Software > \Microsoft\Fusion!EnableLog]. > > Stack Trace: > > [FileLoadException: Could not load file or assembly > 'Castle.DynamicProxy2' or one of its dependencies. The located > assembly's manifest definition does not match the assembly reference. > (Exception from HRESULT: 0x80131040)] > System.Reflection.Assembly._nLoad(AssemblyName fileName, String > codeBase, Evidence assemblySecurity, Assembly locationHint, > StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean > forIntrospection) +0 > System.Reflection.Assembly.nLoad(AssemblyName fileName, String > codeBase, Evidence assemblySecurity, Assembly locationHint, > StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean > forIntrospection) +43 > System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, > Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean > forIntrospection) +127 > System.Reflection.Assembly.InternalLoad(String assemblyString, > Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean > forIntrospection) +142 > System.Reflection.Assembly.Load(String assemblyString) +28 > System.Web.Configuration.CompilationSection.LoadAssemblyHelper > (String assemblyName, Boolean starDirective) +46 > > [ConfigurationErrorsException: Could not load file or assembly > 'Castle.DynamicProxy2' or one of its dependencies. The located > assembly's manifest definition does not match the assembly reference. > (Exception from HRESULT: 0x80131040)] > System.Web.Configuration.CompilationSection.LoadAssemblyHelper > (String assemblyName, Boolean starDirective) +613 > > System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory > () +203 > System.Web.Configuration.CompilationSection.LoadAssembly > (AssemblyInfo ai) +105 > System.Web.Compilation.BuildManager.GetReferencedAssemblies > (CompilationSection compConfig) +178 > System.Web.Compilation.WebDirectoryBatchCompiler..ctor > (VirtualDirectory vdir) +163 > System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal > (VirtualDirectory vdir, Boolean ignoreErrors) +53 > System.Web.Compilation.BuildManager.BatchCompileWebDirectory > (VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors) > +175 > System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath > virtualPath) +86 > System.Web.Compilation.BuildManager.GetVPathBuildResultInternal > (VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, > Boolean allowBuildInPrecompile) +261 > System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert > (HttpContext context, VirtualPath virtualPath, Boolean noBuild, > Boolean allowCrossApp, Boolean allowBuildInPrecompile) +101 > System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory > (VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, > Boolean noAssert) +126 > System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath > (VirtualPath virtualPath, Type requiredBaseType, HttpContext context, > Boolean allowCrossApp, Boolean noAssert) +62 > System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext > context, String requestType, VirtualPath virtualPath, String > physicalPath) +33 > > System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler > (HttpContext context, String requestType, VirtualPath virtualPath, > String physicalPath) +40 > System.Web.HttpApplication.MapHttpHandler(HttpContext context, > String requestType, VirtualPath path, String pathTranslated, Boolean > useAppConfig) +160 > > System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute > () +93 > System.Web.HttpApplication.ExecuteStep(IExecutionStep step, > Boolean& completedSynchronously) +155 > > ============================================ > > On Jan 22, 12:07 am, Sam Kimmel <[email protected]> wrote: > > > Fabio, I tried what you recommended and I still get the following > > error. I'm going to try to download the source for the Castle Dynamic > > Proxy 2.2 and see if I can add the AllowPartiallyTrustedCallers > > attribute. [P.S. - I double checked and all my solutions assemblies > > are marked with with the AllowPartiallyTrustedCallers. Will let you > > know what I figure out. > > > =============================== > > > Security Exception > > Description: The application attempted to perform an operation not > > allowed by the security policy. To grant this application the > > required permission please contact your system administrator or change > > the application's trust level in the configuration file. > > > Exception Details: System.Security.SecurityException: That assembly > > does not allow partially trusted callers. > > > Source Error: > > > An unhandled exception was generated during the execution of the > > current web request. Information regarding the origin and location of > > the exception can be identified using the exception stack trace > > below. > > > Stack Trace: > > > [SecurityException: That assembly does not allow partially trusted > > callers.] > > Castle.DynamicProxy.ModuleScope..ctor(Boolean savePhysicalAssembly, > > INamingScope namingScope, String strongAssemblyName, String > > strongModulePath, String weakAssemblyName, String weakModulePath) +0 > > Castle.DynamicProxy.ModuleScope..ctor(Boolean savePhysicalAssembly, > > String strongAssemblyName, String strongModulePath, String > > weakAssemblyName, String weakModulePath) +75 > > Castle.DynamicProxy.ModuleScope..ctor(Boolean savePhysicalAssembly) > > +62 > > Castle.DynamicProxy.ModuleScope..ctor() +31 > > Castle.DynamicProxy.DefaultProxyBuilder..ctor() +44 > > Castle.DynamicProxy.ProxyGenerator..ctor() +44 > > NHibernate.ByteCode.Castle.ProxyFactory..cctor() +49 > > > ================================ > > > On Jan 21, 2:39 pm, Sam Kimmel <[email protected]> wrote: > > > > So the error above is a known issue with Castle Dynamic Proxy 2.1? > > > I'll try your suggestions when I get home tonight. > > > > On Jan 21, 2:03 pm, Fabio Maulo <[email protected]> wrote: > > > > > Now you can : > > > > 1) download NH2.1.2GA sources > > > > 2) download the new version of Castle's Dynamic Proxy 2.2 > > > > 3) Copy Castle.Core and Castle.DynamicProxy2 in the lib folder of NH > > > > 4) compile NHibernate.ByteCode.Castle > > > > 5) work as normal ;) > > > > > 2010/1/21 Sam Kimmel <[email protected]> > > > > > > I am working on a web project and medium trust is a requirement. I > > > > > downloaded the NHibernate Proxy Generator contrib (1.0.0 Beta 621) and > > > > > quickly found out that it was created with NH 2.0.1, which was before > > > > > the Castle Proxy stuff was split out. > > > > > > I wanted to work with the latest and greatest so I downloaded the > > > > > source for the NHPG and updated all of the assembly references to the > > > > > latest stable releases for NH and Castle, added in the IProxyValidator > > > > > stuff, and recompiled without errors. > > > > > > The problem is that now when I run the proxy generator I get the > > ... > > read more » -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
