This most likely has to do with IIS rather than your application. What OS version are you running?
John Davidson On Fri, Jul 16, 2010 at 2:24 PM, Jason Meckley <[email protected]>wrote: > I have a web app that is using NH search. The indexes are stored off > the root of the virtual directory > ~/Index/[folder per entity] > > Sometimes our end users are prompted for their user name and password. > they hit cancel, close the browser, return to the page and it appears > all the data was saved correctly. the problem appears to be > intermittent and this wasn't a problem during local development or the > testing server. > > here is how session/search is resolved for the web application. > Kernel > .Register( > Component > .For<ISessionFactory>() > .LifeStyle.Singleton > .UsingFactoryMethod(k => k > > .Resolve<Configuration>() > > .BuildSessionFactory()), > Component > .For<ISession>() > .Forward<IFullTextSession>() > .LifeStyle.Transient > .UsingFactoryMethod(k => k > > .Resolve<ISessionFactory>() > > .GetCurrentSession())); > > the session is scoped per request > public class Global : HttpApplication, IContainerAccessor > { > private static IWindsorContainer container; > > protected void Application_Start(object sender, EventArgs e) > { > container = new WindsorContainer(new XmlInterpreter()) > .AddFacility<LoggingFacility>("logging") > .AddFacility<FactorySupportFacility>() > .AddFacility<MonoRailFacility>() > .AddFacility<MyFacility>(); > } > > protected void Application_End(object sender, EventArgs e) > { > container.Dispose(); > } > > protected void Application_Error(object sender, EventArgs e) > { > var exception = Server.GetLastError(); > if(exception == null) return; > > Container > .Resolve<ILoggerFactory>() > .Create(typeof (Global)) > .Error(exception.Message, exception); > } > > public Global() > { > BeginRequest += OpenSession; > EndRequest += DisposeOfSession; > } > > public IWindsorContainer Container > { > get { return container; } > } > > private void OpenSession(object sender, EventArgs e) > { > var session = > Container.Resolve<ISessionFactory>().OpenSession(); > var fullTextSession = Search.CreateFullTextSession(session); > CurrentSessionContext.Bind(fullTextSession); > } > > private void DisposeOfSession(object sender, EventArgs e) > { > var factory = Container.Resolve<ISessionFactory>(); > CurrentSessionContext.Unbind(factory).Dispose(); > } > } > > I have looked at permissions. the user has read/write access to the > Index from IIS. the logging directory has read/write access as well > and the logs are empty, so either the error is not logged, or the > there isn't an error that asp.net is picking up. > > the event logs show the error > Unable to find assembly 'Lucene.Net, Version=2.3.2.1, Culture=neutral, > PublicKeyToken=null'. > this is logged by the .Net or IIS framework, not my application. The > file is in the bin folder though. framework versions > Nh 2.1.2.4 > lucene 2.3.2.1 > NH Search 2.0.0.1001 > > any pointers on where to go from here? Could it be a IIS application > pool reset issue; altering the index changed too many files and IIS > resets the pool? if so, would moving the index to the App_Data > directory prevent this? > Other than that I'm at a loss at this point. > > -- > 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]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > > -- 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.
