[ https://issues.apache.org/jira/browse/LUCENENET-357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12859063#action_12859063 ]
Frank West commented on LUCENENET-357: -------------------------------------- Quick thing: Very glad you picked up this project, it was a shame to see such a powerful piece of software neglected by the .net community. Very excited to see it back to life! TBH: I mostly just modded it, sealed it up and moved on (I just commented it as it seemed there was a lot to do) Easiest way would be to simply deploy any web app with 2.9.1.00 and modify the web.config to run in Medium trust. If I'm correct you wont be able to use Lucene at all. Here's an idea of the diff (I butchered it, as I just needed it running for my own app) Contants.cs (Fails because Medium trust has limited access to Sys Environment /// <summary>The value of <tt>System.getProperty("os.name")</tt>. *</summary> public static readonly System.String OS_NAME = "Windows"; //"System.Environment.GetEnvironmentVariable("OS") ?? "Linux"; /// <summary>True iff running on Linux. </summary> public static readonly bool LINUX = OS_NAME.StartsWith("Linux"); /// <summary>True iff running on Windows. </summary> public static readonly bool WINDOWS = OS_NAME.StartsWith("Windows"); /// <summary>True iff running on SunOS. </summary> public static readonly bool SUN_OS = OS_NAME.StartsWith("SunOS"); public static readonly System.String OS_ARCH = "Unknown";//System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE"); public static readonly System.String OS_VERSION = "Unknown";//System.Environment.OSVersion.ToString(); public static readonly System.String JAVA_VENDOR = "Unknown";//SupportClass.AppSettings.Get("java.vendor", ""); FSDirectory.cs (Removed reference to tmp dir) public static readonly System.String LOCK_DIR = ""; FieldCacheImple.Cache *THIS IS THE WEAKHASTABLE issue lock (readerCache.SyncRoot) { innerCache = (System.Collections.IDictionary) readerCache[readerKey]; if (innerCache == null) { innerCache = new System.Collections.Hashtable(); readerCache[readerKey] = innerCache; value_Renamed = null; } else { value_Renamed = innerCache[key]; <- IT FAILS HERE AFAIRemeber ("the expression cannot be evaluated as it comes from an untrusted assembly".) } if (value_Renamed == null) { value_Renamed = new CreationPlaceholder(); innerCache[key] = value_Renamed; } } Hope this helps, g'luck. Btw: Should I be using this version (2.9) regarding speed - if I'm disabling this caching system? My site handles hundreds of requests a second, and I'm currently using a modified version of 2.0.x which is mostly dealing with it - Should I attempt to implement this version, or wait a bit. Cheers, Frank. > Mostly won't work on shared hosts / Mosso cloud etc due to 'Trust' levels > ------------------------------------------------------------------------- > > Key: LUCENENET-357 > URL: https://issues.apache.org/jira/browse/LUCENENET-357 > Project: Lucene.Net > Issue Type: Bug > Environment: .NET 3.5 / Medium or Medium modified trust > Reporter: Frank West > > Initially I had to remove a few references to the Sys Environment to get it > to work. However now it fails use of the 'Weak Hashtable' - any reference to > a 'weak[something]' will fail with a security exception. The issue only > happens when returning sorted results. > As an example here's the web.config modified trust file I'm being forced to > use on Mosso (Rackspace cloud) > <configuration> > <mscorlib> > <security> > <policy> > <PolicyLevel version="1"> > <SecurityClasses> > <SecurityClass Name="AllMembershipCondition" > Description="System.Security.Policy.AllMembershipCondition, mscorlib, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="AspNetHostingPermission" > Description="System.Web.AspNetHostingPermission, System, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="ConfigurationPermission" > Description="System.Configuration.ConfigurationPermission, > System.Configuration, Version=2.0.0.0, Culture=neutral, > PublicKeyToken=b03f5f7f11d50a3a"/> > <SecurityClass Name="DnsPermission" > Description="System.Net.DnsPermission, System, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="EnvironmentPermission" > Description="System.Security.Permissions.EnvironmentPermission, mscorlib, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="FileIOPermission" > Description="System.Security.Permissions.FileIOPermission, mscorlib, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="FirstMatchCodeGroup" > Description="System.Security.Policy.FirstMatchCodeGroup, mscorlib, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="IsolatedStorageFilePermission" > Description="System.Security.Permissions.IsolatedStorageFilePermission, > mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="NamedPermissionSet" > Description="System.Security.NamedPermissionSet"/> > <SecurityClass Name="PrintingPermission" > Description="System.Drawing.Printing.PrintingPermission, System.Drawing, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> > <SecurityClass Name="SecurityPermission" > Description="System.Security.Permissions.SecurityPermission, mscorlib, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="SmtpPermission" > Description="System.Net.Mail.SmtpPermission, System, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="SqlClientPermission" > Description="System.Data.SqlClient.SqlClientPermission, System.Data, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="StrongNameMembershipCondition" > Description="System.Security.Policy.StrongNameMembershipCondition, mscorlib, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="UIPermission" > Description="System.Security.Permissions.UIPermission, mscorlib, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="UnionCodeGroup" > Description="System.Security.Policy.UnionCodeGroup, mscorlib, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="UrlMembershipCondition" > Description="System.Security.Policy.UrlMembershipCondition, mscorlib, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="WebPermission" > Description="System.Net.WebPermission, System, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="ZoneMembershipCondition" > Description="System.Security.Policy.ZoneMembershipCondition, mscorlib, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="ReflectionPermission" > Description="System.Security.Permissions.ReflectionPermission, mscorlib, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="OleDbPermission" > Description="System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="OdbcPermission" > Description="System.Data.Odbc.OdbcPermission, System.Data, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > <SecurityClass Name="SocketPermission" > Description="System.Net.SocketPermission, System, Version=2.0.0.0, > Culture=neutral, PublicKeyToken=b77a5c561934e089"/> > </SecurityClasses> > <NamedPermissionSets> > <PermissionSet class="NamedPermissionSet" version="1" > Unrestricted="true" Name="FullTrust" Description="Allows full access to all > resources"/> > <PermissionSet class="NamedPermissionSet" version="1" > Name="Nothing" Description="Denies all resources, including the right to > execute"/> > <PermissionSet class="NamedPermissionSet" version="1" > Name="ASP.Net"> > <IPermission class="AspNetHostingPermission" version="1" > Level="Medium"/> > <IPermission class="ConfigurationPermission" version="1" > Unrestricted="true"/> > <IPermission class="DnsPermission" version="1" > Unrestricted="true"/> > <IPermission class="EnvironmentPermission" version="1" > Read="TEMP;TMP;USERNAME;OS;COMPUTERNAME"/> > <IPermission class="FileIOPermission" version="1" > Read="$AppDir$" Write="$AppDir$" Append="$AppDir$" PathDiscovery="$AppDir$"/> > <IPermission class="IsolatedStorageFilePermission" version="1" > Allowed="AssemblyIsolationByUser" UserQuota="9223372036854775807"/> > <!-- <IPermission class="PrintingPermission" version="1" > Level="DefaultPrinting"/> --> > <IPermission class="SecurityPermission" version="1" > Flags="Assertion, Execution, ControlThread, ControlPrincipal, > RemotingConfiguration"/> > <IPermission class="SmtpPermission" version="1" > Access="ConnectToUnrestrictedPort"/> > <IPermission class="SqlClientPermission" version="1" > Unrestricted="true"/> > <IPermission class="WebPermission" version="1" > Unrestricted="true"/> > <IPermission class="OleDbPermission" version="1" > Unrestricted="true"/> > <IPermission class="OdbcPermission" version="1" > Unrestricted="true"/> > <IPermission class="SocketPermission" version="1" > Unrestricted="true" /> > <IPermission class="ReflectionPermission" version="1" > Unrestricted="true"/> > </PermissionSet> > </NamedPermissionSets> > <CodeGroup class="FirstMatchCodeGroup" version="1" > PermissionSetName="Nothing"> > <IMembershipCondition class="AllMembershipCondition" version="1"/> > <CodeGroup class="UnionCodeGroup" version="1" > PermissionSetName="ASP.Net"> > <IMembershipCondition class="UrlMembershipCondition" > version="1" Url="$AppDirUrl$/*"/> > </CodeGroup> > <CodeGroup class="UnionCodeGroup" version="1" > PermissionSetName="ASP.Net"> > <IMembershipCondition class="UrlMembershipCondition" > version="1" Url="$CodeGen$/*"/> > </CodeGroup> > <CodeGroup class="UnionCodeGroup" version="1" > PermissionSetName="Nothing"> > <IMembershipCondition class="ZoneMembershipCondition" > version="1" Zone="MyComputer"/> > <CodeGroup class="UnionCodeGroup" version="1" > PermissionSetName="FullTrust" Name="Microsoft_Strong_Name" Description="This > code group grants code signed with the Microsoft strong name full trust. "> > <IMembershipCondition class="StrongNameMembershipCondition" > version="1" > PublicKeyBlob="002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293"/> > </CodeGroup> > <CodeGroup class="UnionCodeGroup" version="1" > PermissionSetName="FullTrust" Name="Ecma_Strong_Name" Description="This code > group grants code signed with the ECMA strong name full trust. "> > <IMembershipCondition class="StrongNameMembershipCondition" > version="1" PublicKeyBlob="00000000000000000400000000000000"/> > </CodeGroup> > </CodeGroup> > </CodeGroup> > </PolicyLevel> > </policy> > </security> > </mscorlib> > </configuration> -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.