You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@lucenenet.apache.org by Simone Chiaretta <si...@gmail.com> on 2010/02/10 20:46:24 UTC

Lucene.net in Medium Trust

Hi all,
we are starting to do the final testing with the new release of Subtext
which has a Lucene.net based search engine.
But we are finding a strange error, related to a SecurityPermission when
running in medium trust

there is the stack trace of the error:

[SecurityException: Request for the permission of type
'System.Security.Permissions.
SecurityPermission, mscorlib,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
failed.]
  FileSupport.Sync(FileStream fileStream) +0
  Lucene.Net.Store.FSDirectory.Sync(String name) +151
  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
IndexCommit commit) +257
  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
+110
  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
MaxFieldLength mfl) +369

Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
in SearchEngineService.cs:93

The line of code that causes the error is

_writer = new IndexWriter(_directory,
_analyzer,IndexWriter.MaxFieldLength.UNLIMITED);

where _directory is
FSDirectory.Open(new
DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))

We are using one of the latest versions (retrieved from the trunk around the
beginning of January) .. 2.9.1 I guess

I read you should have fixed the problem in 2.3.2 (
http://issues.apache.org/jira/browse/LUCENENET-169) but this problem is
happening again here.

Any idea on what is happening here?

Thx
Simone

-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"

Re: Lucene.net in Medium Trust

Posted by Simone Chiaretta <si...@gmail.com>.
Not using integrated security.
I know that using a separated process will be better... but if I had the
possibility to install a windows service probably I'd not have the problem
of medium trust :)
The reason is that I've got a public opensource blogging engine that must
run on cheap hosting, and they don't allow full trust and for sure not
services :)

Simo

On Tue, Feb 16, 2010 at 8:56 AM, Noel Lysaght <ly...@hotmail.com> wrote:

> If the web-site is using "Integrated Security" then the writes will happen
> under the identity of the caller. In this case the folder where the index
> data is stored will need to give Read/Write permissions to Authenticated
> Users (which is a group on the local machine).
>
> Ideally the writes should be happing in some form of Windows Service etc, I
> presume this was covered earlier on. Doing writes in a web-site/web-service
> directly is a bad idea because of concurrency issues on the writers.
>
> Kind Regards
> Noel
>
> --------------------------------------------------
> From: "Simone Chiaretta" <si...@gmail.com>
> Sent: Tuesday, February 16, 2010 4:22 PM
>
> To: <lu...@lucene.apache.org>
> Subject: Re: Lucene.net in Medium Trust
>
>  This is the email from the guy that reported the error:
>>
>> It seems like adding the permission to App_Data (where the indexes are
>> located) didn't help.
>>
>> Any ideas?
>> Simone
>>
>> -----------------------------
>>
>> After adding Read/Write/Modify permissions to App_Data for "NETWORK
>> SERVICE" (what the app pool is running under), I got the same
>> permissions issue... but then also got a new one.
>>
>> I added the permissions and did a full IISRESET. I then hit the
>> successfully upgraded site (going to the admin page). The login screen
>> for the admin site came up and I entered my credentials. That's when I
>> got the exception we saw earlier:
>>
>> [SecurityException: Request for the permission of type
>> 'System.Security.Permissions.SecurityPermission, mscorlib,
>> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
>> failed.]
>>  FileSupport.Sync(FileStream fileStream) +0
>>  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>>  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
>> autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
>> IndexCommit commit) +257
>>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
>> Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
>> +110
>>  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
>> MaxFieldLength mfl) +369
>>
>>
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
>> in SearchEngineService.cs:93
>>
>> HOWEVER, if I hit reload, I get a new exception:
>>
>> [LockObtainFailedException: Lock obtain timed out: NativeFSLock@C:\dev
>> \subtext\trunk\src\Subtext.
>> Web\App_Data\write.lock]
>>  Lucene.Net.Store.Lock.Obtain(Int64 lockWaitTimeout) +574
>>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
>> autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
>> IndexCommit commit) +154
>>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
>> Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
>> +110
>>  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
>> MaxFieldLength mfl) +369
>>
>>
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
>> in SearchEngineService.cs:93
>>
>>
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.DoWriterAction(Func`2
>> action) in SearchEngineService.cs:77
>>
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.get_Searcher()
>> in SearchEngineService.cs:100
>>
>>
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.GetIndexedEntryCount(Int32
>> blogId) in SearchEngineService.cs:159
>>  Subtext.Web.Admin.Pages.HomePageDefault.get_IndexedEntryCount() in
>> C:\dev\subtext\trunk\src\Subtext.Web\aspx\Admin\default.aspx.cs:43
>>
>> Looking in the App_Data folder, there aren't any .lock files. Just
>> the .mdf that comes with the source that I'm not using (I have SQL
>> Server with a backup copy of my real database so I can test).
>>
>> Subsequent reloads yield the lock timeout exception over and over.
>>
>> I tried adding Read/Write/Modify to "EVERYONE" on "App_Data," did
>> IISRESET, and got the same results.
>>
>> ------------
>>
>>
>> On Sat, Feb 13, 2010 at 3:29 AM, Simone Chiaretta <
>> simone.chiaretta@gmail.com> wrote:
>>
>>  Nick, I didn't have time to work on this issue.. I asked to the guy that
>>> reported the problem to see if it was a permission problem, but he never
>>> get
>>> back to me.
>>> But I guess it's not as permission problem as he said that with full
>>> trust
>>> it worked
>>>
>>>
>>> On Sat, Feb 13, 2010 at 7:08 AM, Nicholas Paldino [.NET/C# MVP] <
>>> casperOne@caspershouse.com> wrote:
>>>
>>>  Simone,
>>>>
>>>>       Was this ever resolved?  Was it a permissions issue on the
>>>> App_Data
>>>> folder, or something else?
>>>>
>>>>               - Nick
>>>>
>>>> -----Original Message-----
>>>> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
>>>> Sent: Wednesday, February 10, 2010 6:57 PM
>>>> To: lucene-net-user@lucene.apache.org
>>>> Subject: Re: Lucene.net in Medium Trust
>>>>
>>>> It's the App_Data folder of a web app... it *should* have write access
>>>> to
>>>> it.
>>>> I'll check it out
>>>> Simo
>>>>
>>>> On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:
>>>>
>>>> > Hi Simone,
>>>> >
>>>> > Can you try to open/create a file in that directory within your
>>>> app(without
>>>> > using Lucene.NET) to narrow down the source of the problem.
>>>> >
>>>> > DIGY
>>>> >
>>>> > -----Original Message-----
>>>> > From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
>>>> > Sent: Wednesday, February 10, 2010 9:46 PM
>>>> > To: lucene-net-user
>>>> > Subject: Lucene.net in Medium Trust
>>>> >
>>>> > Hi all,
>>>> > we are starting to do the final testing with the new release of >
>>>> Subtext
>>>> > which has a Lucene.net based search engine.
>>>> > But we are finding a strange error, related to a SecurityPermission >
>>>> when
>>>> > running in medium trust
>>>> >
>>>> > there is the stack trace of the error:
>>>> >
>>>> > [SecurityException: Request for the permission of type
>>>> > 'System.Security.Permissions.
>>>> > SecurityPermission, mscorlib,
>>>> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
>>>> > failed.]
>>>> >  FileSupport.Sync(FileStream fileStream) +0
>>>> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>>>> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>>>> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>>>> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
>>>> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
>>>> > IndexCommit commit) +257
>>>> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>>>> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
>>>> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
>>>> > +110
>>>> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
>>>> > MaxFieldLength mfl) +369
>>>> >
>>>> >
>>>> >
>>>>
>>>>
>>>> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
>>>> > r()
>>>> > in SearchEngineService.cs:93
>>>> >
>>>> > The line of code that causes the error is
>>>> >
>>>> > _writer = new IndexWriter(_directory,
>>>> > _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
>>>> >
>>>> > where _directory is
>>>> > FSDirectory.Open(new
>>>> > DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
>>>> >
>>>> > We are using one of the latest versions (retrieved from the trunk >
>>>> around
>>>> > the
>>>> > beginning of January) .. 2.9.1 I guess
>>>> >
>>>> > I read you should have fixed the problem in 2.3.2 (
>>>> > http://issues.apache.org/jira/browse/LUCENENET-169) but this problem
>>>> > is
>>>> > happening again here.
>>>> >
>>>> > Any idea on what is happening here?
>>>> >
>>>> > Thx
>>>> > Simone
>>>> >
>>>> > --
>>>> > Simone Chiaretta
>>>> > Microsoft MVP ASP.NET - ASPInsider
>>>> > Blog: http://codeclimber.net.nz
>>>> > RSS: http://feeds2.feedburner.com/codeclimber
>>>> > twitter: @simonech
>>>> >
>>>> > Any sufficiently advanced technology is indistinguishable from magic
>>>> > "Life is short, play hard"
>>>> >
>>>> >
>>>>
>>>>
>>>> --
>>>> Simone Chiaretta
>>>> Microsoft MVP ASP.NET - ASPInsider
>>>> Blog: http://codeclimber.net.nz
>>>> RSS: http://feeds2.feedburner.com/codeclimber
>>>> twitter: @simonech
>>>>
>>>> Any sufficiently advanced technology is indistinguishable from magic
>>>> "Life is short, play hard"
>>>>
>>>>
>>>
>>>
>>> --
>>> Simone Chiaretta
>>> Microsoft MVP ASP.NET - ASPInsider
>>> Blog: http://codeclimber.net.nz
>>> RSS: http://feeds2.feedburner.com/codeclimber
>>> twitter: @simonech
>>>
>>> Any sufficiently advanced technology is indistinguishable from magic
>>> "Life is short, play hard"
>>>
>>>
>>
>>
>> --
>> Simone Chiaretta
>> Microsoft MVP ASP.NET - ASPInsider
>> Blog: http://codeclimber.net.nz
>> RSS: http://feeds2.feedburner.com/codeclimber
>> twitter: @simonech
>>
>> Any sufficiently advanced technology is indistinguishable from magic
>> "Life is short, play hard"
>>
>>


-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"

Re: Lucene.net in Medium Trust

Posted by Noel Lysaght <ly...@hotmail.com>.
If the web-site is using "Integrated Security" then the writes will happen 
under the identity of the caller. In this case the folder where the index 
data is stored will need to give Read/Write permissions to Authenticated 
Users (which is a group on the local machine).

Ideally the writes should be happing in some form of Windows Service etc, I 
presume this was covered earlier on. Doing writes in a web-site/web-service 
directly is a bad idea because of concurrency issues on the writers.

Kind Regards
Noel

--------------------------------------------------
From: "Simone Chiaretta" <si...@gmail.com>
Sent: Tuesday, February 16, 2010 4:22 PM
To: <lu...@lucene.apache.org>
Subject: Re: Lucene.net in Medium Trust

> This is the email from the guy that reported the error:
>
> It seems like adding the permission to App_Data (where the indexes are
> located) didn't help.
>
> Any ideas?
> Simone
>
> -----------------------------
>
> After adding Read/Write/Modify permissions to App_Data for "NETWORK
> SERVICE" (what the app pool is running under), I got the same
> permissions issue... but then also got a new one.
>
> I added the permissions and did a full IISRESET. I then hit the
> successfully upgraded site (going to the admin page). The login screen
> for the admin site came up and I entered my credentials. That's when I
> got the exception we saw earlier:
>
> [SecurityException: Request for the permission of type
> 'System.Security.Permissions.SecurityPermission, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
> failed.]
>  FileSupport.Sync(FileStream fileStream) +0
>  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> IndexCommit commit) +257
>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> +110
>  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> MaxFieldLength mfl) +369
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
> in SearchEngineService.cs:93
>
> HOWEVER, if I hit reload, I get a new exception:
>
> [LockObtainFailedException: Lock obtain timed out: NativeFSLock@C:\dev
> \subtext\trunk\src\Subtext.
> Web\App_Data\write.lock]
>  Lucene.Net.Store.Lock.Obtain(Int64 lockWaitTimeout) +574
>   Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> IndexCommit commit) +154
>   Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> +110
>  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> MaxFieldLength mfl) +369
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
> in SearchEngineService.cs:93
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.DoWriterAction(Func`2
> action) in SearchEngineService.cs:77
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.get_Searcher()
> in SearchEngineService.cs:100
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.GetIndexedEntryCount(Int32
> blogId) in SearchEngineService.cs:159
>  Subtext.Web.Admin.Pages.HomePageDefault.get_IndexedEntryCount() in
> C:\dev\subtext\trunk\src\Subtext.Web\aspx\Admin\default.aspx.cs:43
>
> Looking in the App_Data folder, there aren't any .lock files. Just
> the .mdf that comes with the source that I'm not using (I have SQL
> Server with a backup copy of my real database so I can test).
>
> Subsequent reloads yield the lock timeout exception over and over.
>
> I tried adding Read/Write/Modify to "EVERYONE" on "App_Data," did
> IISRESET, and got the same results.
>
> ------------
>
>
> On Sat, Feb 13, 2010 at 3:29 AM, Simone Chiaretta <
> simone.chiaretta@gmail.com> wrote:
>
>> Nick, I didn't have time to work on this issue.. I asked to the guy that
>> reported the problem to see if it was a permission problem, but he never 
>> get
>> back to me.
>> But I guess it's not as permission problem as he said that with full 
>> trust
>> it worked
>>
>>
>> On Sat, Feb 13, 2010 at 7:08 AM, Nicholas Paldino [.NET/C# MVP] <
>> casperOne@caspershouse.com> wrote:
>>
>>> Simone,
>>>
>>>        Was this ever resolved?  Was it a permissions issue on the 
>>> App_Data
>>> folder, or something else?
>>>
>>>                - Nick
>>>
>>> -----Original Message-----
>>> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
>>> Sent: Wednesday, February 10, 2010 6:57 PM
>>> To: lucene-net-user@lucene.apache.org
>>> Subject: Re: Lucene.net in Medium Trust
>>>
>>> It's the App_Data folder of a web app... it *should* have write access 
>>> to
>>> it.
>>> I'll check it out
>>> Simo
>>>
>>> On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:
>>>
>>> > Hi Simone,
>>> >
>>> > Can you try to open/create a file in that directory within your
>>> app(without
>>> > using Lucene.NET) to narrow down the source of the problem.
>>> >
>>> > DIGY
>>> >
>>> > -----Original Message-----
>>> > From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
>>> > Sent: Wednesday, February 10, 2010 9:46 PM
>>> > To: lucene-net-user
>>> > Subject: Lucene.net in Medium Trust
>>> >
>>> > Hi all,
>>> > we are starting to do the final testing with the new release of 
>>> > Subtext
>>> > which has a Lucene.net based search engine.
>>> > But we are finding a strange error, related to a SecurityPermission 
>>> > when
>>> > running in medium trust
>>> >
>>> > there is the stack trace of the error:
>>> >
>>> > [SecurityException: Request for the permission of type
>>> > 'System.Security.Permissions.
>>> > SecurityPermission, mscorlib,
>>> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
>>> > failed.]
>>> >  FileSupport.Sync(FileStream fileStream) +0
>>> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>>> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>>> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>>> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
>>> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
>>> > IndexCommit commit) +257
>>> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>>> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
>>> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
>>> > +110
>>> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
>>> > MaxFieldLength mfl) +369
>>> >
>>> >
>>> >
>>>
>>> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
>>> > r()
>>> > in SearchEngineService.cs:93
>>> >
>>> > The line of code that causes the error is
>>> >
>>> > _writer = new IndexWriter(_directory,
>>> > _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
>>> >
>>> > where _directory is
>>> > FSDirectory.Open(new
>>> > DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
>>> >
>>> > We are using one of the latest versions (retrieved from the trunk 
>>> > around
>>> > the
>>> > beginning of January) .. 2.9.1 I guess
>>> >
>>> > I read you should have fixed the problem in 2.3.2 (
>>> > http://issues.apache.org/jira/browse/LUCENENET-169) but this problem 
>>> > is
>>> > happening again here.
>>> >
>>> > Any idea on what is happening here?
>>> >
>>> > Thx
>>> > Simone
>>> >
>>> > --
>>> > Simone Chiaretta
>>> > Microsoft MVP ASP.NET - ASPInsider
>>> > Blog: http://codeclimber.net.nz
>>> > RSS: http://feeds2.feedburner.com/codeclimber
>>> > twitter: @simonech
>>> >
>>> > Any sufficiently advanced technology is indistinguishable from magic
>>> > "Life is short, play hard"
>>> >
>>> >
>>>
>>>
>>> --
>>> Simone Chiaretta
>>> Microsoft MVP ASP.NET - ASPInsider
>>> Blog: http://codeclimber.net.nz
>>> RSS: http://feeds2.feedburner.com/codeclimber
>>> twitter: @simonech
>>>
>>> Any sufficiently advanced technology is indistinguishable from magic
>>> "Life is short, play hard"
>>>
>>
>>
>>
>> --
>> Simone Chiaretta
>> Microsoft MVP ASP.NET - ASPInsider
>> Blog: http://codeclimber.net.nz
>> RSS: http://feeds2.feedburner.com/codeclimber
>> twitter: @simonech
>>
>> Any sufficiently advanced technology is indistinguishable from magic
>> "Life is short, play hard"
>>
>
>
>
> -- 
> Simone Chiaretta
> Microsoft MVP ASP.NET - ASPInsider
> Blog: http://codeclimber.net.nz
> RSS: http://feeds2.feedburner.com/codeclimber
> twitter: @simonech
>
> Any sufficiently advanced technology is indistinguishable from magic
> "Life is short, play hard"
> 

Re: Lucene.net in Medium Trust

Posted by Simone Chiaretta <si...@gmail.com>.
I'll have a try.. thx
Simo

On Tue, Feb 16, 2010 at 8:39 AM, digy digy <di...@gmail.com> wrote:

> The reason may be the "FlushFileBuffers" in
> "SupportClass.FileSupport.Sync".
> Can you change the code as below and try again?
>
> public static void Sync(System.IO.FileStream fileStream)
> {
>   if (fileStream == null) throw new ArgumentNullException("fileStream");
>   fileStream.Flush();
> }
>
> DIGY
>
> On Tue, Feb 16, 2010 at 6:22 PM, Simone Chiaretta <
> simone.chiaretta@gmail.com> wrote:
>
> > This is the email from the guy that reported the error:
> >
> > It seems like adding the permission to App_Data (where the indexes are
> > located) didn't help.
> >
> > Any ideas?
> > Simone
> >
> > -----------------------------
> >
> > After adding Read/Write/Modify permissions to App_Data for "NETWORK
> > SERVICE" (what the app pool is running under), I got the same
> > permissions issue... but then also got a new one.
> >
> > I added the permissions and did a full IISRESET. I then hit the
> > successfully upgraded site (going to the admin page). The login screen
> > for the admin site came up and I entered my credentials. That's when I
> > got the exception we saw earlier:
> >
> > [SecurityException: Request for the permission of type
> > 'System.Security.Permissions.SecurityPermission, mscorlib,
> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
> > failed.]
> >  FileSupport.Sync(FileStream fileStream) +0
> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> > IndexCommit commit) +257
> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> > +110
> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> > MaxFieldLength mfl) +369
> >
> >
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
> > in SearchEngineService.cs:93
> >
> > HOWEVER, if I hit reload, I get a new exception:
> >
> > [LockObtainFailedException: Lock obtain timed out: NativeFSLock@C:\dev
> > \subtext\trunk\src\Subtext.
> > Web\App_Data\write.lock]
> >  Lucene.Net.Store.Lock.Obtain(Int64 lockWaitTimeout) +574
> >    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> > IndexCommit commit) +154
> >    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> > +110
> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> > MaxFieldLength mfl) +369
> >
> >
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
> > in SearchEngineService.cs:93
> >
> >
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.DoWriterAction(Func`2
> > action) in SearchEngineService.cs:77
> >
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.get_Searcher()
> > in SearchEngineService.cs:100
> >
> >
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.GetIndexedEntryCount(Int32
> > blogId) in SearchEngineService.cs:159
> >  Subtext.Web.Admin.Pages.HomePageDefault.get_IndexedEntryCount() in
> > C:\dev\subtext\trunk\src\Subtext.Web\aspx\Admin\default.aspx.cs:43
> >
> > Looking in the App_Data folder, there aren't any .lock files. Just
> > the .mdf that comes with the source that I'm not using (I have SQL
> > Server with a backup copy of my real database so I can test).
> >
> > Subsequent reloads yield the lock timeout exception over and over.
> >
> > I tried adding Read/Write/Modify to "EVERYONE" on "App_Data," did
> > IISRESET, and got the same results.
> >
> > ------------
> >
> >
> > On Sat, Feb 13, 2010 at 3:29 AM, Simone Chiaretta <
> > simone.chiaretta@gmail.com> wrote:
> >
> > > Nick, I didn't have time to work on this issue.. I asked to the guy
> that
> > > reported the problem to see if it was a permission problem, but he
> never
> > get
> > > back to me.
> > > But I guess it's not as permission problem as he said that with full
> > trust
> > > it worked
> > >
> > >
> > > On Sat, Feb 13, 2010 at 7:08 AM, Nicholas Paldino [.NET/C# MVP] <
> > > casperOne@caspershouse.com> wrote:
> > >
> > >> Simone,
> > >>
> > >>        Was this ever resolved?  Was it a permissions issue on the
> > App_Data
> > >> folder, or something else?
> > >>
> > >>                - Nick
> > >>
> > >> -----Original Message-----
> > >> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> > >> Sent: Wednesday, February 10, 2010 6:57 PM
> > >> To: lucene-net-user@lucene.apache.org
> > >> Subject: Re: Lucene.net in Medium Trust
> > >>
> > >> It's the App_Data folder of a web app... it *should* have write access
> > to
> > >> it.
> > >> I'll check it out
> > >> Simo
> > >>
> > >> On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:
> > >>
> > >> > Hi Simone,
> > >> >
> > >> > Can you try to open/create a file in that directory within your
> > >> app(without
> > >> > using Lucene.NET) to narrow down the source of the problem.
> > >> >
> > >> > DIGY
> > >> >
> > >> > -----Original Message-----
> > >> > From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> > >> > Sent: Wednesday, February 10, 2010 9:46 PM
> > >> > To: lucene-net-user
> > >> > Subject: Lucene.net in Medium Trust
> > >> >
> > >> > Hi all,
> > >> > we are starting to do the final testing with the new release of
> > Subtext
> > >> > which has a Lucene.net based search engine.
> > >> > But we are finding a strange error, related to a SecurityPermission
> > when
> > >> > running in medium trust
> > >> >
> > >> > there is the stack trace of the error:
> > >> >
> > >> > [SecurityException: Request for the permission of type
> > >> > 'System.Security.Permissions.
> > >> > SecurityPermission, mscorlib,
> > >> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
> > >> > failed.]
> > >> >  FileSupport.Sync(FileStream fileStream) +0
> > >> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
> > >> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
> > >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > >> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy,
> Boolean
> > >> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> > >> > IndexCommit commit) +257
> > >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > >> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> > >> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit
> commit)
> > >> > +110
> > >> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> > >> > MaxFieldLength mfl) +369
> > >> >
> > >> >
> > >> >
> > >>
> > >>
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
> > >> > r()
> > >> > in SearchEngineService.cs:93
> > >> >
> > >> > The line of code that causes the error is
> > >> >
> > >> > _writer = new IndexWriter(_directory,
> > >> > _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
> > >> >
> > >> > where _directory is
> > >> > FSDirectory.Open(new
> > >> > DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
> > >> >
> > >> > We are using one of the latest versions (retrieved from the trunk
> > around
> > >> > the
> > >> > beginning of January) .. 2.9.1 I guess
> > >> >
> > >> > I read you should have fixed the problem in 2.3.2 (
> > >> > http://issues.apache.org/jira/browse/LUCENENET-169) but this
> problem
> > is
> > >> > happening again here.
> > >> >
> > >> > Any idea on what is happening here?
> > >> >
> > >> > Thx
> > >> > Simone
> > >> >
> > >> > --
> > >> > Simone Chiaretta
> > >> > Microsoft MVP ASP.NET - ASPInsider
> > >> > Blog: http://codeclimber.net.nz
> > >> > RSS: http://feeds2.feedburner.com/codeclimber
> > >> > twitter: @simonech
> > >> >
> > >> > Any sufficiently advanced technology is indistinguishable from magic
> > >> > "Life is short, play hard"
> > >> >
> > >> >
> > >>
> > >>
> > >> --
> > >> Simone Chiaretta
> > >> Microsoft MVP ASP.NET - ASPInsider
> > >> Blog: http://codeclimber.net.nz
> > >> RSS: http://feeds2.feedburner.com/codeclimber
> > >> twitter: @simonech
> > >>
> > >> Any sufficiently advanced technology is indistinguishable from magic
> > >> "Life is short, play hard"
> > >>
> > >
> > >
> > >
> > > --
> > > Simone Chiaretta
> > > Microsoft MVP ASP.NET - ASPInsider
> > > Blog: http://codeclimber.net.nz
> > > RSS: http://feeds2.feedburner.com/codeclimber
> > > twitter: @simonech
> > >
> > > Any sufficiently advanced technology is indistinguishable from magic
> > > "Life is short, play hard"
> > >
> >
> >
> >
> > --
> > Simone Chiaretta
> > Microsoft MVP ASP.NET - ASPInsider
> > Blog: http://codeclimber.net.nz
> > RSS: http://feeds2.feedburner.com/codeclimber
> > twitter: @simonech
> >
> > Any sufficiently advanced technology is indistinguishable from magic
> > "Life is short, play hard"
> >
>



-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"

Re: Lucene.net in Medium Trust

Posted by Simone Chiaretta <si...@gmail.com>.
Commented on that bug...
and added patch

Simo

On Thu, May 6, 2010 at 6:09 PM, Digy <di...@gmail.com> wrote:

> I updated the title of LUCENENET-357
> Attaching your patch to that issue would be good.
>
> DIGY
>
>
> -----Original Message-----
> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> Sent: Thursday, May 06, 2010 6:54 PM
> To: lucene-net-user@lucene.apache.org
> Subject: Re: Lucene.net in Medium Trust
>
> Should I send a patch? Should I file a bug?
> Simone
>
> On Wed, May 5, 2010 at 12:06 PM, Simone Chiaretta <
> simone.chiaretta@gmail.com> wrote:
>
> > Hi All,
> > sorry for taking so long to work on the issue:
> > Debugging so far, and found out that the problem was not in the open
> > method, but in the static constructor itself
> >
> > 1 - FSDirectory static constructor:
> > public static readonly System.String LOCK_DIR =
> > SupportClass.AppSettings.Get("Lucene.Net.lockDir",
> > System.IO.Path.GetTempPath());
> > GetTempPath raises a permission exception when running in medium trust...
> > since this is even an Obsolete method I just removed the line
> >
> > 2 - Utils.Constants static constructor:
> > System.Environment.GetEnvironmentVariable: raises an exception medium
> trust
> > as well:
> > The lines with problems are:
> >
> >    - public static readonly System.String OS_NAME =
> >    System.Environment.GetEnvironmentVariable("OS") ?? "Linux";
> >    Just hardcoded "Windows" as I'm not running on other machines... I
> also
> >    searched for usages and it's used only in two lines: one in the
> Directory
> >    Open method in an if/else statement that does the same things in both
> trees,
> >    and the other is in the IndexWriter where the
> DEFAULT_MAX_SYNC_PAUSE_SECONDS
> >    is set based on whether it's Windows
> >    - public static readonly System.String OS_ARCH =
> >    System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
> >    Used only as debugging info, so hardcoded it to x86
> >    - public static readonly System.String OS_VERSION =
> >    System.Environment.OSVersion.ToString()
> >    Used only in debugging, hardcoded to String.Empty
> >
> >
> > With these changes it works even when setting the trust level to medium:
> > tested adding
> > <trust level="Medium" originUrl=".*" />
> > in the config file of the applications
> >
> > hope this helps
> > Simo
> >
> > PS: I also found this blog post that talks about the same problems:
> >
> >
>
> http://www.klopfenstein.net/lorenz.aspx/lucene.net-on-medium-trust-nhibernat
> e-search-part-2
> >
> <
> http://www.klopfenstein.net/lorenz.aspx/lucene.net-on-medium-trust-nhiberna
> te-search-part-2>Too
> > bad he didn't publish any code, but only released the compiled build
> file.
> >
> > On Tue, Feb 16, 2010 at 6:39 PM, digy digy <di...@gmail.com> wrote:
> >
> >> The reason may be the "FlushFileBuffers" in
> >> "SupportClass.FileSupport.Sync".
> >> Can you change the code as below and try again?
> >>
> >> public static void Sync(System.IO.FileStream fileStream)
> >> {
> >>   if (fileStream == null) throw new ArgumentNullException("fileStream");
> >>   fileStream.Flush();
> >> }
> >>
> >> DIGY
> >>
> >> On Tue, Feb 16, 2010 at 6:22 PM, Simone Chiaretta <
> >> simone.chiaretta@gmail.com> wrote:
> >>
> >> > This is the email from the guy that reported the error:
> >> >
> >> > It seems like adding the permission to App_Data (where the indexes are
> >> > located) didn't help.
> >> >
> >> > Any ideas?
> >> > Simone
> >> >
> >> > -----------------------------
> >> >
> >> > After adding Read/Write/Modify permissions to App_Data for "NETWORK
> >> > SERVICE" (what the app pool is running under), I got the same
> >> > permissions issue... but then also got a new one.
> >> >
> >> > I added the permissions and did a full IISRESET. I then hit the
> >> > successfully upgraded site (going to the admin page). The login screen
> >> > for the admin site came up and I entered my credentials. That's when I
> >> > got the exception we saw earlier:
> >> >
> >> > [SecurityException: Request for the permission of type
> >> > 'System.Security.Permissions.SecurityPermission, mscorlib,
> >> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
> >> > failed.]
> >> >  FileSupport.Sync(FileStream fileStream) +0
> >> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
> >> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
> >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> >> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> >> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> >> > IndexCommit commit) +257
> >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> >> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> >> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> >> > +110
> >> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> >> > MaxFieldLength mfl) +369
> >> >
> >> >
> >> >
> >>
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
> r()
> >> > in SearchEngineService.cs:93
> >> >
> >> > HOWEVER, if I hit reload, I get a new exception:
> >> >
> >> > [LockObtainFailedException: Lock obtain timed out: NativeFSLock@C
> :\dev
> >> > \subtext\trunk\src\Subtext.
> >> > Web\App_Data\write.lock]
> >> >  Lucene.Net.Store.Lock.Obtain(Int64 lockWaitTimeout) +574
> >> >    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> >> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> >> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> >> > IndexCommit commit) +154
> >> >    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> >> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> >> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> >> > +110
> >> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> >> > MaxFieldLength mfl) +369
> >> >
> >> >
> >> >
> >>
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
> r()
> >> > in SearchEngineService.cs:93
> >> >
> >> >
> >> >
> >>
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.DoWriterAction(F
> unc`2
> >> > action) in SearchEngineService.cs:77
> >> >
> >> >
> >>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.get_Searcher()
> >> > in SearchEngineService.cs:100
> >> >
> >> >
> >> >
> >>
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.GetIndexedEntryC
> ount(Int32
> >> > blogId) in SearchEngineService.cs:159
> >> >  Subtext.Web.Admin.Pages.HomePageDefault.get_IndexedEntryCount() in
> >> > C:\dev\subtext\trunk\src\Subtext.Web\aspx\Admin\default.aspx.cs:43
> >> >
> >> > Looking in the App_Data folder, there aren't any .lock files. Just
> >> > the .mdf that comes with the source that I'm not using (I have SQL
> >> > Server with a backup copy of my real database so I can test).
> >> >
> >> > Subsequent reloads yield the lock timeout exception over and over.
> >> >
> >> > I tried adding Read/Write/Modify to "EVERYONE" on "App_Data," did
> >> > IISRESET, and got the same results.
> >> >
> >> > ------------
> >> >
> >> >
> >> > On Sat, Feb 13, 2010 at 3:29 AM, Simone Chiaretta <
> >> > simone.chiaretta@gmail.com> wrote:
> >> >
> >> > > Nick, I didn't have time to work on this issue.. I asked to the guy
> >> that
> >> > > reported the problem to see if it was a permission problem, but he
> >> never
> >> > get
> >> > > back to me.
> >> > > But I guess it's not as permission problem as he said that with full
> >> > trust
> >> > > it worked
> >> > >
> >> > >
> >> > > On Sat, Feb 13, 2010 at 7:08 AM, Nicholas Paldino [.NET/C# MVP] <
> >> > > casperOne@caspershouse.com> wrote:
> >> > >
> >> > >> Simone,
> >> > >>
> >> > >>        Was this ever resolved?  Was it a permissions issue on the
> >> > App_Data
> >> > >> folder, or something else?
> >> > >>
> >> > >>                - Nick
> >> > >>
> >> > >> -----Original Message-----
> >> > >> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> >> > >> Sent: Wednesday, February 10, 2010 6:57 PM
> >> > >> To: lucene-net-user@lucene.apache.org
> >> > >> Subject: Re: Lucene.net in Medium Trust
> >> > >>
> >> > >> It's the App_Data folder of a web app... it *should* have write
> >> access
> >> > to
> >> > >> it.
> >> > >> I'll check it out
> >> > >> Simo
> >> > >>
> >> > >> On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:
> >> > >>
> >> > >> > Hi Simone,
> >> > >> >
> >> > >> > Can you try to open/create a file in that directory within your
> >> > >> app(without
> >> > >> > using Lucene.NET) to narrow down the source of the problem.
> >> > >> >
> >> > >> > DIGY
> >> > >> >
> >> > >> > -----Original Message-----
> >> > >> > From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> >> > >> > Sent: Wednesday, February 10, 2010 9:46 PM
> >> > >> > To: lucene-net-user
> >> > >> > Subject: Lucene.net in Medium Trust
> >> > >> >
> >> > >> > Hi all,
> >> > >> > we are starting to do the final testing with the new release of
> >> > Subtext
> >> > >> > which has a Lucene.net based search engine.
> >> > >> > But we are finding a strange error, related to a
> SecurityPermission
> >> > when
> >> > >> > running in medium trust
> >> > >> >
> >> > >> > there is the stack trace of the error:
> >> > >> >
> >> > >> > [SecurityException: Request for the permission of type
> >> > >> > 'System.Security.Permissions.
> >> > >> > SecurityPermission, mscorlib,
> >> > >> > Version=2.0.0.0, Culture=neutral,
> PublicKeyToken=b77a5c561934e089'
> >> > >> > failed.]
> >> > >> >  FileSupport.Sync(FileStream fileStream) +0
> >> > >> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
> >> > >> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
> >> > >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a,
> Boolean
> >> > >> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy,
> >> Boolean
> >> > >> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> >> > >> > IndexCommit commit) +257
> >> > >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a,
> Boolean
> >> > >> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> >> > >> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit
> >> commit)
> >> > >> > +110
> >> > >> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> >> > >> > MaxFieldLength mfl) +369
> >> > >> >
> >> > >> >
> >> > >> >
> >> > >>
> >> > >>
> >> >
> >>
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
> >> > >> > r()
> >> > >> > in SearchEngineService.cs:93
> >> > >> >
> >> > >> > The line of code that causes the error is
> >> > >> >
> >> > >> > _writer = new IndexWriter(_directory,
> >> > >> > _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
> >> > >> >
> >> > >> > where _directory is
> >> > >> > FSDirectory.Open(new
> >> > >> > DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
> >> > >> >
> >> > >> > We are using one of the latest versions (retrieved from the trunk
> >> > around
> >> > >> > the
> >> > >> > beginning of January) .. 2.9.1 I guess
> >> > >> >
> >> > >> > I read you should have fixed the problem in 2.3.2 (
> >> > >> > http://issues.apache.org/jira/browse/LUCENENET-169) but this
> >> problem
> >> > is
> >> > >> > happening again here.
> >> > >> >
> >> > >> > Any idea on what is happening here?
> >> > >> >
> >> > >> > Thx
> >> > >> > Simone
> >> > >> >
> >> > >> > --
> >> > >> > Simone Chiaretta
> >> > >> > Microsoft MVP ASP.NET - ASPInsider
> >> > >> > Blog: http://codeclimber.net.nz
> >> > >> > RSS: http://feeds2.feedburner.com/codeclimber
> >> > >> > twitter: @simonech
> >> > >> >
> >> > >> > Any sufficiently advanced technology is indistinguishable from
> >> magic
> >> > >> > "Life is short, play hard"
> >> > >> >
> >> > >> >
> >> > >>
> >> > >>
> >> > >> --
> >> > >> Simone Chiaretta
> >> > >> Microsoft MVP ASP.NET - ASPInsider
> >> > >> Blog: http://codeclimber.net.nz
> >> > >> RSS: http://feeds2.feedburner.com/codeclimber
> >> > >> twitter: @simonech
> >> > >>
> >> > >> Any sufficiently advanced technology is indistinguishable from
> magic
> >> > >> "Life is short, play hard"
> >> > >>
> >> > >
> >> > >
> >> > >
> >> > > --
> >> > > Simone Chiaretta
> >> > > Microsoft MVP ASP.NET - ASPInsider
> >> > > Blog: http://codeclimber.net.nz
> >> > > RSS: http://feeds2.feedburner.com/codeclimber
> >> > > twitter: @simonech
> >> > >
> >> > > Any sufficiently advanced technology is indistinguishable from magic
> >> > > "Life is short, play hard"
> >> > >
> >> >
> >> >
> >> >
> >> > --
> >> > Simone Chiaretta
> >> > Microsoft MVP ASP.NET - ASPInsider
> >> > Blog: http://codeclimber.net.nz
> >> > RSS: http://feeds2.feedburner.com/codeclimber
> >> > twitter: @simonech
> >> >
> >> > Any sufficiently advanced technology is indistinguishable from magic
> >> > "Life is short, play hard"
> >> >
> >>
> >
> >
> >
> > --
> > Simone Chiaretta
> > Microsoft MVP ASP.NET - ASPInsider
> > Blog: http://codeclimber.net.nz
> > RSS: http://feeds2.feedburner.com/codeclimber
> > twitter: @simonech
> >
> > Any sufficiently advanced technology is indistinguishable from magic
> > "Life is short, play hard"
> >
>
>
>
> --
> Simone Chiaretta
> Microsoft MVP ASP.NET - ASPInsider
> Blog: http://codeclimber.net.nz
> RSS: http://feeds2.feedburner.com/codeclimber
> twitter: @simonech
>
> Any sufficiently advanced technology is indistinguishable from magic
> "Life is short, play hard"
>
>


-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"

RE: Lucene.net in Medium Trust

Posted by Digy <di...@gmail.com>.
I updated the title of LUCENENET-357
Attaching your patch to that issue would be good.

DIGY


-----Original Message-----
From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com] 
Sent: Thursday, May 06, 2010 6:54 PM
To: lucene-net-user@lucene.apache.org
Subject: Re: Lucene.net in Medium Trust

Should I send a patch? Should I file a bug?
Simone

On Wed, May 5, 2010 at 12:06 PM, Simone Chiaretta <
simone.chiaretta@gmail.com> wrote:

> Hi All,
> sorry for taking so long to work on the issue:
> Debugging so far, and found out that the problem was not in the open
> method, but in the static constructor itself
>
> 1 - FSDirectory static constructor:
> public static readonly System.String LOCK_DIR =
> SupportClass.AppSettings.Get("Lucene.Net.lockDir",
> System.IO.Path.GetTempPath());
> GetTempPath raises a permission exception when running in medium trust...
> since this is even an Obsolete method I just removed the line
>
> 2 - Utils.Constants static constructor:
> System.Environment.GetEnvironmentVariable: raises an exception medium
trust
> as well:
> The lines with problems are:
>
>    - public static readonly System.String OS_NAME =
>    System.Environment.GetEnvironmentVariable("OS") ?? "Linux";
>    Just hardcoded "Windows" as I'm not running on other machines... I also
>    searched for usages and it's used only in two lines: one in the
Directory
>    Open method in an if/else statement that does the same things in both
trees,
>    and the other is in the IndexWriter where the
DEFAULT_MAX_SYNC_PAUSE_SECONDS
>    is set based on whether it's Windows
>    - public static readonly System.String OS_ARCH =
>    System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
>    Used only as debugging info, so hardcoded it to x86
>    - public static readonly System.String OS_VERSION =
>    System.Environment.OSVersion.ToString()
>    Used only in debugging, hardcoded to String.Empty
>
>
> With these changes it works even when setting the trust level to medium:
> tested adding
> <trust level="Medium" originUrl=".*" />
> in the config file of the applications
>
> hope this helps
> Simo
>
> PS: I also found this blog post that talks about the same problems:
>
>
http://www.klopfenstein.net/lorenz.aspx/lucene.net-on-medium-trust-nhibernat
e-search-part-2
>
<http://www.klopfenstein.net/lorenz.aspx/lucene.net-on-medium-trust-nhiberna
te-search-part-2>Too
> bad he didn't publish any code, but only released the compiled build file.
>
> On Tue, Feb 16, 2010 at 6:39 PM, digy digy <di...@gmail.com> wrote:
>
>> The reason may be the "FlushFileBuffers" in
>> "SupportClass.FileSupport.Sync".
>> Can you change the code as below and try again?
>>
>> public static void Sync(System.IO.FileStream fileStream)
>> {
>>   if (fileStream == null) throw new ArgumentNullException("fileStream");
>>   fileStream.Flush();
>> }
>>
>> DIGY
>>
>> On Tue, Feb 16, 2010 at 6:22 PM, Simone Chiaretta <
>> simone.chiaretta@gmail.com> wrote:
>>
>> > This is the email from the guy that reported the error:
>> >
>> > It seems like adding the permission to App_Data (where the indexes are
>> > located) didn't help.
>> >
>> > Any ideas?
>> > Simone
>> >
>> > -----------------------------
>> >
>> > After adding Read/Write/Modify permissions to App_Data for "NETWORK
>> > SERVICE" (what the app pool is running under), I got the same
>> > permissions issue... but then also got a new one.
>> >
>> > I added the permissions and did a full IISRESET. I then hit the
>> > successfully upgraded site (going to the admin page). The login screen
>> > for the admin site came up and I entered my credentials. That's when I
>> > got the exception we saw earlier:
>> >
>> > [SecurityException: Request for the permission of type
>> > 'System.Security.Permissions.SecurityPermission, mscorlib,
>> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
>> > failed.]
>> >  FileSupport.Sync(FileStream fileStream) +0
>> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
>> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
>> > IndexCommit commit) +257
>> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
>> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
>> > +110
>> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
>> > MaxFieldLength mfl) +369
>> >
>> >
>> >
>>
Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
r()
>> > in SearchEngineService.cs:93
>> >
>> > HOWEVER, if I hit reload, I get a new exception:
>> >
>> > [LockObtainFailedException: Lock obtain timed out: NativeFSLock@C:\dev
>> > \subtext\trunk\src\Subtext.
>> > Web\App_Data\write.lock]
>> >  Lucene.Net.Store.Lock.Obtain(Int64 lockWaitTimeout) +574
>> >    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
>> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
>> > IndexCommit commit) +154
>> >    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
>> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
>> > +110
>> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
>> > MaxFieldLength mfl) +369
>> >
>> >
>> >
>>
Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
r()
>> > in SearchEngineService.cs:93
>> >
>> >
>> >
>>
Subtext.Framework.Services.SearchEngine.SearchEngineService.DoWriterAction(F
unc`2
>> > action) in SearchEngineService.cs:77
>> >
>> >
>>
Subtext.Framework.Services.SearchEngine.SearchEngineService.get_Searcher()
>> > in SearchEngineService.cs:100
>> >
>> >
>> >
>>
Subtext.Framework.Services.SearchEngine.SearchEngineService.GetIndexedEntryC
ount(Int32
>> > blogId) in SearchEngineService.cs:159
>> >  Subtext.Web.Admin.Pages.HomePageDefault.get_IndexedEntryCount() in
>> > C:\dev\subtext\trunk\src\Subtext.Web\aspx\Admin\default.aspx.cs:43
>> >
>> > Looking in the App_Data folder, there aren't any .lock files. Just
>> > the .mdf that comes with the source that I'm not using (I have SQL
>> > Server with a backup copy of my real database so I can test).
>> >
>> > Subsequent reloads yield the lock timeout exception over and over.
>> >
>> > I tried adding Read/Write/Modify to "EVERYONE" on "App_Data," did
>> > IISRESET, and got the same results.
>> >
>> > ------------
>> >
>> >
>> > On Sat, Feb 13, 2010 at 3:29 AM, Simone Chiaretta <
>> > simone.chiaretta@gmail.com> wrote:
>> >
>> > > Nick, I didn't have time to work on this issue.. I asked to the guy
>> that
>> > > reported the problem to see if it was a permission problem, but he
>> never
>> > get
>> > > back to me.
>> > > But I guess it's not as permission problem as he said that with full
>> > trust
>> > > it worked
>> > >
>> > >
>> > > On Sat, Feb 13, 2010 at 7:08 AM, Nicholas Paldino [.NET/C# MVP] <
>> > > casperOne@caspershouse.com> wrote:
>> > >
>> > >> Simone,
>> > >>
>> > >>        Was this ever resolved?  Was it a permissions issue on the
>> > App_Data
>> > >> folder, or something else?
>> > >>
>> > >>                - Nick
>> > >>
>> > >> -----Original Message-----
>> > >> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
>> > >> Sent: Wednesday, February 10, 2010 6:57 PM
>> > >> To: lucene-net-user@lucene.apache.org
>> > >> Subject: Re: Lucene.net in Medium Trust
>> > >>
>> > >> It's the App_Data folder of a web app... it *should* have write
>> access
>> > to
>> > >> it.
>> > >> I'll check it out
>> > >> Simo
>> > >>
>> > >> On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:
>> > >>
>> > >> > Hi Simone,
>> > >> >
>> > >> > Can you try to open/create a file in that directory within your
>> > >> app(without
>> > >> > using Lucene.NET) to narrow down the source of the problem.
>> > >> >
>> > >> > DIGY
>> > >> >
>> > >> > -----Original Message-----
>> > >> > From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
>> > >> > Sent: Wednesday, February 10, 2010 9:46 PM
>> > >> > To: lucene-net-user
>> > >> > Subject: Lucene.net in Medium Trust
>> > >> >
>> > >> > Hi all,
>> > >> > we are starting to do the final testing with the new release of
>> > Subtext
>> > >> > which has a Lucene.net based search engine.
>> > >> > But we are finding a strange error, related to a
SecurityPermission
>> > when
>> > >> > running in medium trust
>> > >> >
>> > >> > there is the stack trace of the error:
>> > >> >
>> > >> > [SecurityException: Request for the permission of type
>> > >> > 'System.Security.Permissions.
>> > >> > SecurityPermission, mscorlib,
>> > >> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
>> > >> > failed.]
>> > >> >  FileSupport.Sync(FileStream fileStream) +0
>> > >> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>> > >> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>> > >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a,
Boolean
>> > >> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy,
>> Boolean
>> > >> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
>> > >> > IndexCommit commit) +257
>> > >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a,
Boolean
>> > >> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
>> > >> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit
>> commit)
>> > >> > +110
>> > >> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
>> > >> > MaxFieldLength mfl) +369
>> > >> >
>> > >> >
>> > >> >
>> > >>
>> > >>
>> >
>>
Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
>> > >> > r()
>> > >> > in SearchEngineService.cs:93
>> > >> >
>> > >> > The line of code that causes the error is
>> > >> >
>> > >> > _writer = new IndexWriter(_directory,
>> > >> > _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
>> > >> >
>> > >> > where _directory is
>> > >> > FSDirectory.Open(new
>> > >> > DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
>> > >> >
>> > >> > We are using one of the latest versions (retrieved from the trunk
>> > around
>> > >> > the
>> > >> > beginning of January) .. 2.9.1 I guess
>> > >> >
>> > >> > I read you should have fixed the problem in 2.3.2 (
>> > >> > http://issues.apache.org/jira/browse/LUCENENET-169) but this
>> problem
>> > is
>> > >> > happening again here.
>> > >> >
>> > >> > Any idea on what is happening here?
>> > >> >
>> > >> > Thx
>> > >> > Simone
>> > >> >
>> > >> > --
>> > >> > Simone Chiaretta
>> > >> > Microsoft MVP ASP.NET - ASPInsider
>> > >> > Blog: http://codeclimber.net.nz
>> > >> > RSS: http://feeds2.feedburner.com/codeclimber
>> > >> > twitter: @simonech
>> > >> >
>> > >> > Any sufficiently advanced technology is indistinguishable from
>> magic
>> > >> > "Life is short, play hard"
>> > >> >
>> > >> >
>> > >>
>> > >>
>> > >> --
>> > >> Simone Chiaretta
>> > >> Microsoft MVP ASP.NET - ASPInsider
>> > >> Blog: http://codeclimber.net.nz
>> > >> RSS: http://feeds2.feedburner.com/codeclimber
>> > >> twitter: @simonech
>> > >>
>> > >> Any sufficiently advanced technology is indistinguishable from magic
>> > >> "Life is short, play hard"
>> > >>
>> > >
>> > >
>> > >
>> > > --
>> > > Simone Chiaretta
>> > > Microsoft MVP ASP.NET - ASPInsider
>> > > Blog: http://codeclimber.net.nz
>> > > RSS: http://feeds2.feedburner.com/codeclimber
>> > > twitter: @simonech
>> > >
>> > > Any sufficiently advanced technology is indistinguishable from magic
>> > > "Life is short, play hard"
>> > >
>> >
>> >
>> >
>> > --
>> > Simone Chiaretta
>> > Microsoft MVP ASP.NET - ASPInsider
>> > Blog: http://codeclimber.net.nz
>> > RSS: http://feeds2.feedburner.com/codeclimber
>> > twitter: @simonech
>> >
>> > Any sufficiently advanced technology is indistinguishable from magic
>> > "Life is short, play hard"
>> >
>>
>
>
>
> --
> Simone Chiaretta
> Microsoft MVP ASP.NET - ASPInsider
> Blog: http://codeclimber.net.nz
> RSS: http://feeds2.feedburner.com/codeclimber
> twitter: @simonech
>
> Any sufficiently advanced technology is indistinguishable from magic
> "Life is short, play hard"
>



-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"


Re: Lucene.net in Medium Trust

Posted by Simone Chiaretta <si...@gmail.com>.
Should I send a patch? Should I file a bug?
Simone

On Wed, May 5, 2010 at 12:06 PM, Simone Chiaretta <
simone.chiaretta@gmail.com> wrote:

> Hi All,
> sorry for taking so long to work on the issue:
> Debugging so far, and found out that the problem was not in the open
> method, but in the static constructor itself
>
> 1 - FSDirectory static constructor:
> public static readonly System.String LOCK_DIR =
> SupportClass.AppSettings.Get("Lucene.Net.lockDir",
> System.IO.Path.GetTempPath());
> GetTempPath raises a permission exception when running in medium trust...
> since this is even an Obsolete method I just removed the line
>
> 2 - Utils.Constants static constructor:
> System.Environment.GetEnvironmentVariable: raises an exception medium trust
> as well:
> The lines with problems are:
>
>    - public static readonly System.String OS_NAME =
>    System.Environment.GetEnvironmentVariable("OS") ?? "Linux";
>    Just hardcoded "Windows" as I'm not running on other machines... I also
>    searched for usages and it's used only in two lines: one in the Directory
>    Open method in an if/else statement that does the same things in both trees,
>    and the other is in the IndexWriter where the DEFAULT_MAX_SYNC_PAUSE_SECONDS
>    is set based on whether it's Windows
>    - public static readonly System.String OS_ARCH =
>    System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
>    Used only as debugging info, so hardcoded it to x86
>    - public static readonly System.String OS_VERSION =
>    System.Environment.OSVersion.ToString()
>    Used only in debugging, hardcoded to String.Empty
>
>
> With these changes it works even when setting the trust level to medium:
> tested adding
> <trust level="Medium" originUrl=".*" />
> in the config file of the applications
>
> hope this helps
> Simo
>
> PS: I also found this blog post that talks about the same problems:
>
> http://www.klopfenstein.net/lorenz.aspx/lucene.net-on-medium-trust-nhibernate-search-part-2
> <http://www.klopfenstein.net/lorenz.aspx/lucene.net-on-medium-trust-nhibernate-search-part-2>Too
> bad he didn't publish any code, but only released the compiled build file.
>
> On Tue, Feb 16, 2010 at 6:39 PM, digy digy <di...@gmail.com> wrote:
>
>> The reason may be the "FlushFileBuffers" in
>> "SupportClass.FileSupport.Sync".
>> Can you change the code as below and try again?
>>
>> public static void Sync(System.IO.FileStream fileStream)
>> {
>>   if (fileStream == null) throw new ArgumentNullException("fileStream");
>>   fileStream.Flush();
>> }
>>
>> DIGY
>>
>> On Tue, Feb 16, 2010 at 6:22 PM, Simone Chiaretta <
>> simone.chiaretta@gmail.com> wrote:
>>
>> > This is the email from the guy that reported the error:
>> >
>> > It seems like adding the permission to App_Data (where the indexes are
>> > located) didn't help.
>> >
>> > Any ideas?
>> > Simone
>> >
>> > -----------------------------
>> >
>> > After adding Read/Write/Modify permissions to App_Data for "NETWORK
>> > SERVICE" (what the app pool is running under), I got the same
>> > permissions issue... but then also got a new one.
>> >
>> > I added the permissions and did a full IISRESET. I then hit the
>> > successfully upgraded site (going to the admin page). The login screen
>> > for the admin site came up and I entered my credentials. That's when I
>> > got the exception we saw earlier:
>> >
>> > [SecurityException: Request for the permission of type
>> > 'System.Security.Permissions.SecurityPermission, mscorlib,
>> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
>> > failed.]
>> >  FileSupport.Sync(FileStream fileStream) +0
>> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
>> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
>> > IndexCommit commit) +257
>> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
>> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
>> > +110
>> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
>> > MaxFieldLength mfl) +369
>> >
>> >
>> >
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
>> > in SearchEngineService.cs:93
>> >
>> > HOWEVER, if I hit reload, I get a new exception:
>> >
>> > [LockObtainFailedException: Lock obtain timed out: NativeFSLock@C:\dev
>> > \subtext\trunk\src\Subtext.
>> > Web\App_Data\write.lock]
>> >  Lucene.Net.Store.Lock.Obtain(Int64 lockWaitTimeout) +574
>> >    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
>> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
>> > IndexCommit commit) +154
>> >    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
>> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
>> > +110
>> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
>> > MaxFieldLength mfl) +369
>> >
>> >
>> >
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
>> > in SearchEngineService.cs:93
>> >
>> >
>> >
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.DoWriterAction(Func`2
>> > action) in SearchEngineService.cs:77
>> >
>> >
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.get_Searcher()
>> > in SearchEngineService.cs:100
>> >
>> >
>> >
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.GetIndexedEntryCount(Int32
>> > blogId) in SearchEngineService.cs:159
>> >  Subtext.Web.Admin.Pages.HomePageDefault.get_IndexedEntryCount() in
>> > C:\dev\subtext\trunk\src\Subtext.Web\aspx\Admin\default.aspx.cs:43
>> >
>> > Looking in the App_Data folder, there aren't any .lock files. Just
>> > the .mdf that comes with the source that I'm not using (I have SQL
>> > Server with a backup copy of my real database so I can test).
>> >
>> > Subsequent reloads yield the lock timeout exception over and over.
>> >
>> > I tried adding Read/Write/Modify to "EVERYONE" on "App_Data," did
>> > IISRESET, and got the same results.
>> >
>> > ------------
>> >
>> >
>> > On Sat, Feb 13, 2010 at 3:29 AM, Simone Chiaretta <
>> > simone.chiaretta@gmail.com> wrote:
>> >
>> > > Nick, I didn't have time to work on this issue.. I asked to the guy
>> that
>> > > reported the problem to see if it was a permission problem, but he
>> never
>> > get
>> > > back to me.
>> > > But I guess it's not as permission problem as he said that with full
>> > trust
>> > > it worked
>> > >
>> > >
>> > > On Sat, Feb 13, 2010 at 7:08 AM, Nicholas Paldino [.NET/C# MVP] <
>> > > casperOne@caspershouse.com> wrote:
>> > >
>> > >> Simone,
>> > >>
>> > >>        Was this ever resolved?  Was it a permissions issue on the
>> > App_Data
>> > >> folder, or something else?
>> > >>
>> > >>                - Nick
>> > >>
>> > >> -----Original Message-----
>> > >> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
>> > >> Sent: Wednesday, February 10, 2010 6:57 PM
>> > >> To: lucene-net-user@lucene.apache.org
>> > >> Subject: Re: Lucene.net in Medium Trust
>> > >>
>> > >> It's the App_Data folder of a web app... it *should* have write
>> access
>> > to
>> > >> it.
>> > >> I'll check it out
>> > >> Simo
>> > >>
>> > >> On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:
>> > >>
>> > >> > Hi Simone,
>> > >> >
>> > >> > Can you try to open/create a file in that directory within your
>> > >> app(without
>> > >> > using Lucene.NET) to narrow down the source of the problem.
>> > >> >
>> > >> > DIGY
>> > >> >
>> > >> > -----Original Message-----
>> > >> > From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
>> > >> > Sent: Wednesday, February 10, 2010 9:46 PM
>> > >> > To: lucene-net-user
>> > >> > Subject: Lucene.net in Medium Trust
>> > >> >
>> > >> > Hi all,
>> > >> > we are starting to do the final testing with the new release of
>> > Subtext
>> > >> > which has a Lucene.net based search engine.
>> > >> > But we are finding a strange error, related to a SecurityPermission
>> > when
>> > >> > running in medium trust
>> > >> >
>> > >> > there is the stack trace of the error:
>> > >> >
>> > >> > [SecurityException: Request for the permission of type
>> > >> > 'System.Security.Permissions.
>> > >> > SecurityPermission, mscorlib,
>> > >> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
>> > >> > failed.]
>> > >> >  FileSupport.Sync(FileStream fileStream) +0
>> > >> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>> > >> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>> > >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > >> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy,
>> Boolean
>> > >> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
>> > >> > IndexCommit commit) +257
>> > >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > >> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
>> > >> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit
>> commit)
>> > >> > +110
>> > >> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
>> > >> > MaxFieldLength mfl) +369
>> > >> >
>> > >> >
>> > >> >
>> > >>
>> > >>
>> >
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
>> > >> > r()
>> > >> > in SearchEngineService.cs:93
>> > >> >
>> > >> > The line of code that causes the error is
>> > >> >
>> > >> > _writer = new IndexWriter(_directory,
>> > >> > _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
>> > >> >
>> > >> > where _directory is
>> > >> > FSDirectory.Open(new
>> > >> > DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
>> > >> >
>> > >> > We are using one of the latest versions (retrieved from the trunk
>> > around
>> > >> > the
>> > >> > beginning of January) .. 2.9.1 I guess
>> > >> >
>> > >> > I read you should have fixed the problem in 2.3.2 (
>> > >> > http://issues.apache.org/jira/browse/LUCENENET-169) but this
>> problem
>> > is
>> > >> > happening again here.
>> > >> >
>> > >> > Any idea on what is happening here?
>> > >> >
>> > >> > Thx
>> > >> > Simone
>> > >> >
>> > >> > --
>> > >> > Simone Chiaretta
>> > >> > Microsoft MVP ASP.NET - ASPInsider
>> > >> > Blog: http://codeclimber.net.nz
>> > >> > RSS: http://feeds2.feedburner.com/codeclimber
>> > >> > twitter: @simonech
>> > >> >
>> > >> > Any sufficiently advanced technology is indistinguishable from
>> magic
>> > >> > "Life is short, play hard"
>> > >> >
>> > >> >
>> > >>
>> > >>
>> > >> --
>> > >> Simone Chiaretta
>> > >> Microsoft MVP ASP.NET - ASPInsider
>> > >> Blog: http://codeclimber.net.nz
>> > >> RSS: http://feeds2.feedburner.com/codeclimber
>> > >> twitter: @simonech
>> > >>
>> > >> Any sufficiently advanced technology is indistinguishable from magic
>> > >> "Life is short, play hard"
>> > >>
>> > >
>> > >
>> > >
>> > > --
>> > > Simone Chiaretta
>> > > Microsoft MVP ASP.NET - ASPInsider
>> > > Blog: http://codeclimber.net.nz
>> > > RSS: http://feeds2.feedburner.com/codeclimber
>> > > twitter: @simonech
>> > >
>> > > Any sufficiently advanced technology is indistinguishable from magic
>> > > "Life is short, play hard"
>> > >
>> >
>> >
>> >
>> > --
>> > Simone Chiaretta
>> > Microsoft MVP ASP.NET - ASPInsider
>> > Blog: http://codeclimber.net.nz
>> > RSS: http://feeds2.feedburner.com/codeclimber
>> > twitter: @simonech
>> >
>> > Any sufficiently advanced technology is indistinguishable from magic
>> > "Life is short, play hard"
>> >
>>
>
>
>
> --
> Simone Chiaretta
> Microsoft MVP ASP.NET - ASPInsider
> Blog: http://codeclimber.net.nz
> RSS: http://feeds2.feedburner.com/codeclimber
> twitter: @simonech
>
> Any sufficiently advanced technology is indistinguishable from magic
> "Life is short, play hard"
>



-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"

Re: Lucene.net in Medium Trust

Posted by Simone Chiaretta <si...@gmail.com>.
Hi All,
sorry for taking so long to work on the issue:
Debugging so far, and found out that the problem was not in the open method,
but in the static constructor itself

1 - FSDirectory static constructor:
public static readonly System.String LOCK_DIR =
SupportClass.AppSettings.Get("Lucene.Net.lockDir",
System.IO.Path.GetTempPath());
GetTempPath raises a permission exception when running in medium trust...
since this is even an Obsolete method I just removed the line

2 - Utils.Constants static constructor:
System.Environment.GetEnvironmentVariable: raises an exception medium trust
as well:
The lines with problems are:

   - public static readonly System.String OS_NAME =
   System.Environment.GetEnvironmentVariable("OS") ?? "Linux";
   Just hardcoded "Windows" as I'm not running on other machines... I also
   searched for usages and it's used only in two lines: one in the Directory
   Open method in an if/else statement that does the same things in both trees,
   and the other is in the IndexWriter where the DEFAULT_MAX_SYNC_PAUSE_SECONDS
   is set based on whether it's Windows
   - public static readonly System.String OS_ARCH =
   System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
   Used only as debugging info, so hardcoded it to x86
   - public static readonly System.String OS_VERSION =
   System.Environment.OSVersion.ToString()
   Used only in debugging, hardcoded to String.Empty


With these changes it works even when setting the trust level to medium:
tested adding
<trust level="Medium" originUrl=".*" />
in the config file of the applications

hope this helps
Simo

PS: I also found this blog post that talks about the same problems:
http://www.klopfenstein.net/lorenz.aspx/lucene.net-on-medium-trust-nhibernate-search-part-2
<http://www.klopfenstein.net/lorenz.aspx/lucene.net-on-medium-trust-nhibernate-search-part-2>Too
bad he didn't publish any code, but only released the compiled build file.

On Tue, Feb 16, 2010 at 6:39 PM, digy digy <di...@gmail.com> wrote:

> The reason may be the "FlushFileBuffers" in
> "SupportClass.FileSupport.Sync".
> Can you change the code as below and try again?
>
> public static void Sync(System.IO.FileStream fileStream)
> {
>   if (fileStream == null) throw new ArgumentNullException("fileStream");
>   fileStream.Flush();
> }
>
> DIGY
>
> On Tue, Feb 16, 2010 at 6:22 PM, Simone Chiaretta <
> simone.chiaretta@gmail.com> wrote:
>
> > This is the email from the guy that reported the error:
> >
> > It seems like adding the permission to App_Data (where the indexes are
> > located) didn't help.
> >
> > Any ideas?
> > Simone
> >
> > -----------------------------
> >
> > After adding Read/Write/Modify permissions to App_Data for "NETWORK
> > SERVICE" (what the app pool is running under), I got the same
> > permissions issue... but then also got a new one.
> >
> > I added the permissions and did a full IISRESET. I then hit the
> > successfully upgraded site (going to the admin page). The login screen
> > for the admin site came up and I entered my credentials. That's when I
> > got the exception we saw earlier:
> >
> > [SecurityException: Request for the permission of type
> > 'System.Security.Permissions.SecurityPermission, mscorlib,
> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
> > failed.]
> >  FileSupport.Sync(FileStream fileStream) +0
> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> > IndexCommit commit) +257
> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> > +110
> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> > MaxFieldLength mfl) +369
> >
> >
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
> > in SearchEngineService.cs:93
> >
> > HOWEVER, if I hit reload, I get a new exception:
> >
> > [LockObtainFailedException: Lock obtain timed out: NativeFSLock@C:\dev
> > \subtext\trunk\src\Subtext.
> > Web\App_Data\write.lock]
> >  Lucene.Net.Store.Lock.Obtain(Int64 lockWaitTimeout) +574
> >    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> > IndexCommit commit) +154
> >    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> > +110
> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> > MaxFieldLength mfl) +369
> >
> >
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
> > in SearchEngineService.cs:93
> >
> >
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.DoWriterAction(Func`2
> > action) in SearchEngineService.cs:77
> >
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.get_Searcher()
> > in SearchEngineService.cs:100
> >
> >
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.GetIndexedEntryCount(Int32
> > blogId) in SearchEngineService.cs:159
> >  Subtext.Web.Admin.Pages.HomePageDefault.get_IndexedEntryCount() in
> > C:\dev\subtext\trunk\src\Subtext.Web\aspx\Admin\default.aspx.cs:43
> >
> > Looking in the App_Data folder, there aren't any .lock files. Just
> > the .mdf that comes with the source that I'm not using (I have SQL
> > Server with a backup copy of my real database so I can test).
> >
> > Subsequent reloads yield the lock timeout exception over and over.
> >
> > I tried adding Read/Write/Modify to "EVERYONE" on "App_Data," did
> > IISRESET, and got the same results.
> >
> > ------------
> >
> >
> > On Sat, Feb 13, 2010 at 3:29 AM, Simone Chiaretta <
> > simone.chiaretta@gmail.com> wrote:
> >
> > > Nick, I didn't have time to work on this issue.. I asked to the guy
> that
> > > reported the problem to see if it was a permission problem, but he
> never
> > get
> > > back to me.
> > > But I guess it's not as permission problem as he said that with full
> > trust
> > > it worked
> > >
> > >
> > > On Sat, Feb 13, 2010 at 7:08 AM, Nicholas Paldino [.NET/C# MVP] <
> > > casperOne@caspershouse.com> wrote:
> > >
> > >> Simone,
> > >>
> > >>        Was this ever resolved?  Was it a permissions issue on the
> > App_Data
> > >> folder, or something else?
> > >>
> > >>                - Nick
> > >>
> > >> -----Original Message-----
> > >> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> > >> Sent: Wednesday, February 10, 2010 6:57 PM
> > >> To: lucene-net-user@lucene.apache.org
> > >> Subject: Re: Lucene.net in Medium Trust
> > >>
> > >> It's the App_Data folder of a web app... it *should* have write access
> > to
> > >> it.
> > >> I'll check it out
> > >> Simo
> > >>
> > >> On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:
> > >>
> > >> > Hi Simone,
> > >> >
> > >> > Can you try to open/create a file in that directory within your
> > >> app(without
> > >> > using Lucene.NET) to narrow down the source of the problem.
> > >> >
> > >> > DIGY
> > >> >
> > >> > -----Original Message-----
> > >> > From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> > >> > Sent: Wednesday, February 10, 2010 9:46 PM
> > >> > To: lucene-net-user
> > >> > Subject: Lucene.net in Medium Trust
> > >> >
> > >> > Hi all,
> > >> > we are starting to do the final testing with the new release of
> > Subtext
> > >> > which has a Lucene.net based search engine.
> > >> > But we are finding a strange error, related to a SecurityPermission
> > when
> > >> > running in medium trust
> > >> >
> > >> > there is the stack trace of the error:
> > >> >
> > >> > [SecurityException: Request for the permission of type
> > >> > 'System.Security.Permissions.
> > >> > SecurityPermission, mscorlib,
> > >> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
> > >> > failed.]
> > >> >  FileSupport.Sync(FileStream fileStream) +0
> > >> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
> > >> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
> > >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > >> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy,
> Boolean
> > >> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> > >> > IndexCommit commit) +257
> > >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > >> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> > >> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit
> commit)
> > >> > +110
> > >> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> > >> > MaxFieldLength mfl) +369
> > >> >
> > >> >
> > >> >
> > >>
> > >>
> >
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
> > >> > r()
> > >> > in SearchEngineService.cs:93
> > >> >
> > >> > The line of code that causes the error is
> > >> >
> > >> > _writer = new IndexWriter(_directory,
> > >> > _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
> > >> >
> > >> > where _directory is
> > >> > FSDirectory.Open(new
> > >> > DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
> > >> >
> > >> > We are using one of the latest versions (retrieved from the trunk
> > around
> > >> > the
> > >> > beginning of January) .. 2.9.1 I guess
> > >> >
> > >> > I read you should have fixed the problem in 2.3.2 (
> > >> > http://issues.apache.org/jira/browse/LUCENENET-169) but this
> problem
> > is
> > >> > happening again here.
> > >> >
> > >> > Any idea on what is happening here?
> > >> >
> > >> > Thx
> > >> > Simone
> > >> >
> > >> > --
> > >> > Simone Chiaretta
> > >> > Microsoft MVP ASP.NET - ASPInsider
> > >> > Blog: http://codeclimber.net.nz
> > >> > RSS: http://feeds2.feedburner.com/codeclimber
> > >> > twitter: @simonech
> > >> >
> > >> > Any sufficiently advanced technology is indistinguishable from magic
> > >> > "Life is short, play hard"
> > >> >
> > >> >
> > >>
> > >>
> > >> --
> > >> Simone Chiaretta
> > >> Microsoft MVP ASP.NET - ASPInsider
> > >> Blog: http://codeclimber.net.nz
> > >> RSS: http://feeds2.feedburner.com/codeclimber
> > >> twitter: @simonech
> > >>
> > >> Any sufficiently advanced technology is indistinguishable from magic
> > >> "Life is short, play hard"
> > >>
> > >
> > >
> > >
> > > --
> > > Simone Chiaretta
> > > Microsoft MVP ASP.NET - ASPInsider
> > > Blog: http://codeclimber.net.nz
> > > RSS: http://feeds2.feedburner.com/codeclimber
> > > twitter: @simonech
> > >
> > > Any sufficiently advanced technology is indistinguishable from magic
> > > "Life is short, play hard"
> > >
> >
> >
> >
> > --
> > Simone Chiaretta
> > Microsoft MVP ASP.NET - ASPInsider
> > Blog: http://codeclimber.net.nz
> > RSS: http://feeds2.feedburner.com/codeclimber
> > twitter: @simonech
> >
> > Any sufficiently advanced technology is indistinguishable from magic
> > "Life is short, play hard"
> >
>



-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"

Re: Lucene.net in Medium Trust

Posted by digy digy <di...@gmail.com>.
The reason may be the "FlushFileBuffers" in "SupportClass.FileSupport.Sync".
Can you change the code as below and try again?

public static void Sync(System.IO.FileStream fileStream)
{
   if (fileStream == null) throw new ArgumentNullException("fileStream");
   fileStream.Flush();
}

DIGY

On Tue, Feb 16, 2010 at 6:22 PM, Simone Chiaretta <
simone.chiaretta@gmail.com> wrote:

> This is the email from the guy that reported the error:
>
> It seems like adding the permission to App_Data (where the indexes are
> located) didn't help.
>
> Any ideas?
> Simone
>
> -----------------------------
>
> After adding Read/Write/Modify permissions to App_Data for "NETWORK
> SERVICE" (what the app pool is running under), I got the same
> permissions issue... but then also got a new one.
>
> I added the permissions and did a full IISRESET. I then hit the
> successfully upgraded site (going to the admin page). The login screen
> for the admin site came up and I entered my credentials. That's when I
> got the exception we saw earlier:
>
> [SecurityException: Request for the permission of type
> 'System.Security.Permissions.SecurityPermission, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
> failed.]
>  FileSupport.Sync(FileStream fileStream) +0
>  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> IndexCommit commit) +257
>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> +110
>  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> MaxFieldLength mfl) +369
>
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
> in SearchEngineService.cs:93
>
> HOWEVER, if I hit reload, I get a new exception:
>
> [LockObtainFailedException: Lock obtain timed out: NativeFSLock@C:\dev
> \subtext\trunk\src\Subtext.
> Web\App_Data\write.lock]
>  Lucene.Net.Store.Lock.Obtain(Int64 lockWaitTimeout) +574
>    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> IndexCommit commit) +154
>    Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> +110
>  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> MaxFieldLength mfl) +369
>
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
> in SearchEngineService.cs:93
>
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.DoWriterAction(Func`2
> action) in SearchEngineService.cs:77
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.get_Searcher()
> in SearchEngineService.cs:100
>
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.GetIndexedEntryCount(Int32
> blogId) in SearchEngineService.cs:159
>  Subtext.Web.Admin.Pages.HomePageDefault.get_IndexedEntryCount() in
> C:\dev\subtext\trunk\src\Subtext.Web\aspx\Admin\default.aspx.cs:43
>
> Looking in the App_Data folder, there aren't any .lock files. Just
> the .mdf that comes with the source that I'm not using (I have SQL
> Server with a backup copy of my real database so I can test).
>
> Subsequent reloads yield the lock timeout exception over and over.
>
> I tried adding Read/Write/Modify to "EVERYONE" on "App_Data," did
> IISRESET, and got the same results.
>
> ------------
>
>
> On Sat, Feb 13, 2010 at 3:29 AM, Simone Chiaretta <
> simone.chiaretta@gmail.com> wrote:
>
> > Nick, I didn't have time to work on this issue.. I asked to the guy that
> > reported the problem to see if it was a permission problem, but he never
> get
> > back to me.
> > But I guess it's not as permission problem as he said that with full
> trust
> > it worked
> >
> >
> > On Sat, Feb 13, 2010 at 7:08 AM, Nicholas Paldino [.NET/C# MVP] <
> > casperOne@caspershouse.com> wrote:
> >
> >> Simone,
> >>
> >>        Was this ever resolved?  Was it a permissions issue on the
> App_Data
> >> folder, or something else?
> >>
> >>                - Nick
> >>
> >> -----Original Message-----
> >> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> >> Sent: Wednesday, February 10, 2010 6:57 PM
> >> To: lucene-net-user@lucene.apache.org
> >> Subject: Re: Lucene.net in Medium Trust
> >>
> >> It's the App_Data folder of a web app... it *should* have write access
> to
> >> it.
> >> I'll check it out
> >> Simo
> >>
> >> On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:
> >>
> >> > Hi Simone,
> >> >
> >> > Can you try to open/create a file in that directory within your
> >> app(without
> >> > using Lucene.NET) to narrow down the source of the problem.
> >> >
> >> > DIGY
> >> >
> >> > -----Original Message-----
> >> > From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> >> > Sent: Wednesday, February 10, 2010 9:46 PM
> >> > To: lucene-net-user
> >> > Subject: Lucene.net in Medium Trust
> >> >
> >> > Hi all,
> >> > we are starting to do the final testing with the new release of
> Subtext
> >> > which has a Lucene.net based search engine.
> >> > But we are finding a strange error, related to a SecurityPermission
> when
> >> > running in medium trust
> >> >
> >> > there is the stack trace of the error:
> >> >
> >> > [SecurityException: Request for the permission of type
> >> > 'System.Security.Permissions.
> >> > SecurityPermission, mscorlib,
> >> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
> >> > failed.]
> >> >  FileSupport.Sync(FileStream fileStream) +0
> >> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
> >> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
> >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> >> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> >> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> >> > IndexCommit commit) +257
> >> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> >> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> >> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> >> > +110
> >> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> >> > MaxFieldLength mfl) +369
> >> >
> >> >
> >> >
> >>
> >>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
> >> > r()
> >> > in SearchEngineService.cs:93
> >> >
> >> > The line of code that causes the error is
> >> >
> >> > _writer = new IndexWriter(_directory,
> >> > _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
> >> >
> >> > where _directory is
> >> > FSDirectory.Open(new
> >> > DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
> >> >
> >> > We are using one of the latest versions (retrieved from the trunk
> around
> >> > the
> >> > beginning of January) .. 2.9.1 I guess
> >> >
> >> > I read you should have fixed the problem in 2.3.2 (
> >> > http://issues.apache.org/jira/browse/LUCENENET-169) but this problem
> is
> >> > happening again here.
> >> >
> >> > Any idea on what is happening here?
> >> >
> >> > Thx
> >> > Simone
> >> >
> >> > --
> >> > Simone Chiaretta
> >> > Microsoft MVP ASP.NET - ASPInsider
> >> > Blog: http://codeclimber.net.nz
> >> > RSS: http://feeds2.feedburner.com/codeclimber
> >> > twitter: @simonech
> >> >
> >> > Any sufficiently advanced technology is indistinguishable from magic
> >> > "Life is short, play hard"
> >> >
> >> >
> >>
> >>
> >> --
> >> Simone Chiaretta
> >> Microsoft MVP ASP.NET - ASPInsider
> >> Blog: http://codeclimber.net.nz
> >> RSS: http://feeds2.feedburner.com/codeclimber
> >> twitter: @simonech
> >>
> >> Any sufficiently advanced technology is indistinguishable from magic
> >> "Life is short, play hard"
> >>
> >
> >
> >
> > --
> > Simone Chiaretta
> > Microsoft MVP ASP.NET - ASPInsider
> > Blog: http://codeclimber.net.nz
> > RSS: http://feeds2.feedburner.com/codeclimber
> > twitter: @simonech
> >
> > Any sufficiently advanced technology is indistinguishable from magic
> > "Life is short, play hard"
> >
>
>
>
> --
> Simone Chiaretta
> Microsoft MVP ASP.NET - ASPInsider
> Blog: http://codeclimber.net.nz
> RSS: http://feeds2.feedburner.com/codeclimber
> twitter: @simonech
>
> Any sufficiently advanced technology is indistinguishable from magic
> "Life is short, play hard"
>

Re: Lucene.net in Medium Trust

Posted by Simone Chiaretta <si...@gmail.com>.
This is the email from the guy that reported the error:

It seems like adding the permission to App_Data (where the indexes are
located) didn't help.

Any ideas?
Simone

-----------------------------

After adding Read/Write/Modify permissions to App_Data for "NETWORK
SERVICE" (what the app pool is running under), I got the same
permissions issue... but then also got a new one.

I added the permissions and did a full IISRESET. I then hit the
successfully upgraded site (going to the admin page). The login screen
for the admin site came up and I entered my credentials. That's when I
got the exception we saw earlier:

[SecurityException: Request for the permission of type
'System.Security.Permissions.SecurityPermission, mscorlib,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
failed.]
  FileSupport.Sync(FileStream fileStream) +0
  Lucene.Net.Store.FSDirectory.Sync(String name) +151
  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
IndexCommit commit) +257
  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
+110
  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
MaxFieldLength mfl) +369

Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
in SearchEngineService.cs:93

HOWEVER, if I hit reload, I get a new exception:

[LockObtainFailedException: Lock obtain timed out: NativeFSLock@C:\dev
\subtext\trunk\src\Subtext.
Web\App_Data\write.lock]
  Lucene.Net.Store.Lock.Obtain(Int64 lockWaitTimeout) +574
   Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
IndexCommit commit) +154
   Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
+110
  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
MaxFieldLength mfl) +369

Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWriter()
in SearchEngineService.cs:93

Subtext.Framework.Services.SearchEngine.SearchEngineService.DoWriterAction(Func`2
action) in SearchEngineService.cs:77

Subtext.Framework.Services.SearchEngine.SearchEngineService.get_Searcher()
in SearchEngineService.cs:100

Subtext.Framework.Services.SearchEngine.SearchEngineService.GetIndexedEntryCount(Int32
blogId) in SearchEngineService.cs:159
  Subtext.Web.Admin.Pages.HomePageDefault.get_IndexedEntryCount() in
C:\dev\subtext\trunk\src\Subtext.Web\aspx\Admin\default.aspx.cs:43

Looking in the App_Data folder, there aren't any .lock files. Just
the .mdf that comes with the source that I'm not using (I have SQL
Server with a backup copy of my real database so I can test).

Subsequent reloads yield the lock timeout exception over and over.

I tried adding Read/Write/Modify to "EVERYONE" on "App_Data," did
IISRESET, and got the same results.

------------


On Sat, Feb 13, 2010 at 3:29 AM, Simone Chiaretta <
simone.chiaretta@gmail.com> wrote:

> Nick, I didn't have time to work on this issue.. I asked to the guy that
> reported the problem to see if it was a permission problem, but he never get
> back to me.
> But I guess it's not as permission problem as he said that with full trust
> it worked
>
>
> On Sat, Feb 13, 2010 at 7:08 AM, Nicholas Paldino [.NET/C# MVP] <
> casperOne@caspershouse.com> wrote:
>
>> Simone,
>>
>>        Was this ever resolved?  Was it a permissions issue on the App_Data
>> folder, or something else?
>>
>>                - Nick
>>
>> -----Original Message-----
>> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
>> Sent: Wednesday, February 10, 2010 6:57 PM
>> To: lucene-net-user@lucene.apache.org
>> Subject: Re: Lucene.net in Medium Trust
>>
>> It's the App_Data folder of a web app... it *should* have write access to
>> it.
>> I'll check it out
>> Simo
>>
>> On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:
>>
>> > Hi Simone,
>> >
>> > Can you try to open/create a file in that directory within your
>> app(without
>> > using Lucene.NET) to narrow down the source of the problem.
>> >
>> > DIGY
>> >
>> > -----Original Message-----
>> > From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
>> > Sent: Wednesday, February 10, 2010 9:46 PM
>> > To: lucene-net-user
>> > Subject: Lucene.net in Medium Trust
>> >
>> > Hi all,
>> > we are starting to do the final testing with the new release of Subtext
>> > which has a Lucene.net based search engine.
>> > But we are finding a strange error, related to a SecurityPermission when
>> > running in medium trust
>> >
>> > there is the stack trace of the error:
>> >
>> > [SecurityException: Request for the permission of type
>> > 'System.Security.Permissions.
>> > SecurityPermission, mscorlib,
>> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
>> > failed.]
>> >  FileSupport.Sync(FileStream fileStream) +0
>> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
>> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
>> > IndexCommit commit) +257
>> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
>> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
>> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
>> > +110
>> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
>> > MaxFieldLength mfl) +369
>> >
>> >
>> >
>>
>> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
>> > r()
>> > in SearchEngineService.cs:93
>> >
>> > The line of code that causes the error is
>> >
>> > _writer = new IndexWriter(_directory,
>> > _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
>> >
>> > where _directory is
>> > FSDirectory.Open(new
>> > DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
>> >
>> > We are using one of the latest versions (retrieved from the trunk around
>> > the
>> > beginning of January) .. 2.9.1 I guess
>> >
>> > I read you should have fixed the problem in 2.3.2 (
>> > http://issues.apache.org/jira/browse/LUCENENET-169) but this problem is
>> > happening again here.
>> >
>> > Any idea on what is happening here?
>> >
>> > Thx
>> > Simone
>> >
>> > --
>> > Simone Chiaretta
>> > Microsoft MVP ASP.NET - ASPInsider
>> > Blog: http://codeclimber.net.nz
>> > RSS: http://feeds2.feedburner.com/codeclimber
>> > twitter: @simonech
>> >
>> > Any sufficiently advanced technology is indistinguishable from magic
>> > "Life is short, play hard"
>> >
>> >
>>
>>
>> --
>> Simone Chiaretta
>> Microsoft MVP ASP.NET - ASPInsider
>> Blog: http://codeclimber.net.nz
>> RSS: http://feeds2.feedburner.com/codeclimber
>> twitter: @simonech
>>
>> Any sufficiently advanced technology is indistinguishable from magic
>> "Life is short, play hard"
>>
>
>
>
> --
> Simone Chiaretta
> Microsoft MVP ASP.NET - ASPInsider
> Blog: http://codeclimber.net.nz
> RSS: http://feeds2.feedburner.com/codeclimber
> twitter: @simonech
>
> Any sufficiently advanced technology is indistinguishable from magic
> "Life is short, play hard"
>



-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"

Re: Lucene.net in Medium Trust

Posted by Simone Chiaretta <si...@gmail.com>.
Nick, I didn't have time to work on this issue.. I asked to the guy that
reported the problem to see if it was a permission problem, but he never get
back to me.
But I guess it's not as permission problem as he said that with full trust
it worked

On Sat, Feb 13, 2010 at 7:08 AM, Nicholas Paldino [.NET/C# MVP] <
casperOne@caspershouse.com> wrote:

> Simone,
>
>        Was this ever resolved?  Was it a permissions issue on the App_Data
> folder, or something else?
>
>                - Nick
>
> -----Original Message-----
> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> Sent: Wednesday, February 10, 2010 6:57 PM
> To: lucene-net-user@lucene.apache.org
> Subject: Re: Lucene.net in Medium Trust
>
> It's the App_Data folder of a web app... it *should* have write access to
> it.
> I'll check it out
> Simo
>
> On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:
>
> > Hi Simone,
> >
> > Can you try to open/create a file in that directory within your
> app(without
> > using Lucene.NET) to narrow down the source of the problem.
> >
> > DIGY
> >
> > -----Original Message-----
> > From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> > Sent: Wednesday, February 10, 2010 9:46 PM
> > To: lucene-net-user
> > Subject: Lucene.net in Medium Trust
> >
> > Hi all,
> > we are starting to do the final testing with the new release of Subtext
> > which has a Lucene.net based search engine.
> > But we are finding a strange error, related to a SecurityPermission when
> > running in medium trust
> >
> > there is the stack trace of the error:
> >
> > [SecurityException: Request for the permission of type
> > 'System.Security.Permissions.
> > SecurityPermission, mscorlib,
> > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
> > failed.]
> >  FileSupport.Sync(FileStream fileStream) +0
> >  Lucene.Net.Store.FSDirectory.Sync(String name) +151
> >  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> > autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> > IndexCommit commit) +257
> >  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> > closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> > Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> > +110
> >  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> > MaxFieldLength mfl) +369
> >
> >
> >
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
> > r()
> > in SearchEngineService.cs:93
> >
> > The line of code that causes the error is
> >
> > _writer = new IndexWriter(_directory,
> > _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
> >
> > where _directory is
> > FSDirectory.Open(new
> > DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
> >
> > We are using one of the latest versions (retrieved from the trunk around
> > the
> > beginning of January) .. 2.9.1 I guess
> >
> > I read you should have fixed the problem in 2.3.2 (
> > http://issues.apache.org/jira/browse/LUCENENET-169) but this problem is
> > happening again here.
> >
> > Any idea on what is happening here?
> >
> > Thx
> > Simone
> >
> > --
> > Simone Chiaretta
> > Microsoft MVP ASP.NET - ASPInsider
> > Blog: http://codeclimber.net.nz
> > RSS: http://feeds2.feedburner.com/codeclimber
> > twitter: @simonech
> >
> > Any sufficiently advanced technology is indistinguishable from magic
> > "Life is short, play hard"
> >
> >
>
>
> --
> Simone Chiaretta
> Microsoft MVP ASP.NET - ASPInsider
> Blog: http://codeclimber.net.nz
> RSS: http://feeds2.feedburner.com/codeclimber
> twitter: @simonech
>
> Any sufficiently advanced technology is indistinguishable from magic
> "Life is short, play hard"
>



-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"

RE: Lucene.net in Medium Trust

Posted by "Nicholas Paldino [.NET/C# MVP]" <ca...@caspershouse.com>.
Simone,

	Was this ever resolved?  Was it a permissions issue on the App_Data
folder, or something else?

		- Nick

-----Original Message-----
From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com] 
Sent: Wednesday, February 10, 2010 6:57 PM
To: lucene-net-user@lucene.apache.org
Subject: Re: Lucene.net in Medium Trust

It's the App_Data folder of a web app... it *should* have write access to
it.
I'll check it out
Simo

On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:

> Hi Simone,
>
> Can you try to open/create a file in that directory within your
app(without
> using Lucene.NET) to narrow down the source of the problem.
>
> DIGY
>
> -----Original Message-----
> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> Sent: Wednesday, February 10, 2010 9:46 PM
> To: lucene-net-user
> Subject: Lucene.net in Medium Trust
>
> Hi all,
> we are starting to do the final testing with the new release of Subtext
> which has a Lucene.net based search engine.
> But we are finding a strange error, related to a SecurityPermission when
> running in medium trust
>
> there is the stack trace of the error:
>
> [SecurityException: Request for the permission of type
> 'System.Security.Permissions.
> SecurityPermission, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
> failed.]
>  FileSupport.Sync(FileStream fileStream) +0
>  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> IndexCommit commit) +257
>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> +110
>  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> MaxFieldLength mfl) +369
>
>
>
Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
> r()
> in SearchEngineService.cs:93
>
> The line of code that causes the error is
>
> _writer = new IndexWriter(_directory,
> _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
>
> where _directory is
> FSDirectory.Open(new
> DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
>
> We are using one of the latest versions (retrieved from the trunk around
> the
> beginning of January) .. 2.9.1 I guess
>
> I read you should have fixed the problem in 2.3.2 (
> http://issues.apache.org/jira/browse/LUCENENET-169) but this problem is
> happening again here.
>
> Any idea on what is happening here?
>
> Thx
> Simone
>
> --
> Simone Chiaretta
> Microsoft MVP ASP.NET - ASPInsider
> Blog: http://codeclimber.net.nz
> RSS: http://feeds2.feedburner.com/codeclimber
> twitter: @simonech
>
> Any sufficiently advanced technology is indistinguishable from magic
> "Life is short, play hard"
>
>


-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"

Re: Lucene.net in Medium Trust

Posted by Simone Chiaretta <si...@gmail.com>.
It's the App_Data folder of a web app... it *should* have write access to
it.
I'll check it out
Simo

On Wed, Feb 10, 2010 at 9:12 PM, Digy <di...@gmail.com> wrote:

> Hi Simone,
>
> Can you try to open/create a file in that directory within your app(without
> using Lucene.NET) to narrow down the source of the problem.
>
> DIGY
>
> -----Original Message-----
> From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com]
> Sent: Wednesday, February 10, 2010 9:46 PM
> To: lucene-net-user
> Subject: Lucene.net in Medium Trust
>
> Hi all,
> we are starting to do the final testing with the new release of Subtext
> which has a Lucene.net based search engine.
> But we are finding a strange error, related to a SecurityPermission when
> running in medium trust
>
> there is the stack trace of the error:
>
> [SecurityException: Request for the permission of type
> 'System.Security.Permissions.
> SecurityPermission, mscorlib,
> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
> failed.]
>  FileSupport.Sync(FileStream fileStream) +0
>  Lucene.Net.Store.FSDirectory.Sync(String name) +151
>  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
> autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
> IndexCommit commit) +257
>  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
> closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
> Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
> +110
>  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
> MaxFieldLength mfl) +369
>
>
> Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
> r()
> in SearchEngineService.cs:93
>
> The line of code that causes the error is
>
> _writer = new IndexWriter(_directory,
> _analyzer,IndexWriter.MaxFieldLength.UNLIMITED);
>
> where _directory is
> FSDirectory.Open(new
> DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))
>
> We are using one of the latest versions (retrieved from the trunk around
> the
> beginning of January) .. 2.9.1 I guess
>
> I read you should have fixed the problem in 2.3.2 (
> http://issues.apache.org/jira/browse/LUCENENET-169) but this problem is
> happening again here.
>
> Any idea on what is happening here?
>
> Thx
> Simone
>
> --
> Simone Chiaretta
> Microsoft MVP ASP.NET - ASPInsider
> Blog: http://codeclimber.net.nz
> RSS: http://feeds2.feedburner.com/codeclimber
> twitter: @simonech
>
> Any sufficiently advanced technology is indistinguishable from magic
> "Life is short, play hard"
>
>


-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"

RE: Lucene.net in Medium Trust

Posted by Digy <di...@gmail.com>.
Hi Simone,

Can you try to open/create a file in that directory within your app(without
using Lucene.NET) to narrow down the source of the problem.

DIGY

-----Original Message-----
From: Simone Chiaretta [mailto:simone.chiaretta@gmail.com] 
Sent: Wednesday, February 10, 2010 9:46 PM
To: lucene-net-user
Subject: Lucene.net in Medium Trust

Hi all,
we are starting to do the final testing with the new release of Subtext
which has a Lucene.net based search engine.
But we are finding a strange error, related to a SecurityPermission when
running in medium trust

there is the stack trace of the error:

[SecurityException: Request for the permission of type
'System.Security.Permissions.
SecurityPermission, mscorlib,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
failed.]
  FileSupport.Sync(FileStream fileStream) +0
  Lucene.Net.Store.FSDirectory.Sync(String name) +151
  Lucene.Net.Index.SegmentInfos.FinishCommit(Directory dir) +171
  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean
autoCommit, Int32 maxFieldLength, IndexingChain indexingChain,
IndexCommit commit) +257
  Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean
closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit,
Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
+110
  Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a,
MaxFieldLength mfl) +369

Subtext.Framework.Services.SearchEngine.SearchEngineService.EnsureIndexWrite
r()
in SearchEngineService.cs:93

The line of code that causes the error is

_writer = new IndexWriter(_directory,
_analyzer,IndexWriter.MaxFieldLength.UNLIMITED);

where _directory is
FSDirectory.Open(new
DirectoryInfo(HttpContext.Server.MapPath("~/App_Data"))))

We are using one of the latest versions (retrieved from the trunk around the
beginning of January) .. 2.9.1 I guess

I read you should have fixed the problem in 2.3.2 (
http://issues.apache.org/jira/browse/LUCENENET-169) but this problem is
happening again here.

Any idea on what is happening here?

Thx
Simone

-- 
Simone Chiaretta
Microsoft MVP ASP.NET - ASPInsider
Blog: http://codeclimber.net.nz
RSS: http://feeds2.feedburner.com/codeclimber
twitter: @simonech

Any sufficiently advanced technology is indistinguishable from magic
"Life is short, play hard"