2006-08-29

Working Around Shared Hosting

I have been investigating the shared hosting issues with Spring and found that it is not as bad as it initially seems. There are a few steps that must be taken, very similar to those taken from other java ported libraries (eg nhibernate).
Firstly, all calls to GetCompiledPageInstance MUST be replaced with CreateInstanceFromVirtualPath. I have provided the fix for this in a previous thread (http://forum.springframework.net/showthread.php?t=407). This is a must because the GetCompiledPageInstance method has an attribute on it, pretty much killing calls to it unless you are running in full trust mode. On shared servers this will be highly unlikely.

[SecurityPermission(SecurityAction.Demand, Unrestricted = true)]

Now i had thought this had been commited into the main branch of SPring.Web, but the nightly build and the cvs repository on sourceforge both do not have the fix

The second step to take modifing the spring source, is to find the file src\Spring\Spring.Core\Core\IO\FileSystemResource.cs. This file has two calls like this

fileHandle.Directory.Root.ToString();

In the hosting trust mode, this bombs out with a FileIOPermission violation. The reason being, you don't have access to the root directory when you are on the shared host. The Root property of DirectoryInfo has this line in it causing the exception.

new FileIOPermission(FileIOPermissionAccess.PathDiscovery, new string[] { text1 }, false, false).Demand();

My solution is a little hacky at the moment but you get the idea. All it is doing is getting the root folder (ie c: or d:). This propably wont work on a network drive remember.

fileHandle.Directory.ToString().Substring(0, 3);

Third thing to do is to add requirePermission="false" to the configSections section in web.config. If you dont do this you will receive a Configuration security permission exception.

<configSections>
  <sectionGroup name="spring">
    <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" 
 requirePermission="false"/>
    <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" 
 requirePermission="false"/>
  </sectionGroup>
</configSections>

The last item on the list is probably the most obscure, and i will try to explain and give some background:

dll's can be signed, which gives them a strong name and a hash, which stops them being modified and re-distributed.
strong named dlls can be registered in the GAC.
From the GAC, dlls can be configured to run in full trust, depending on your .net framework configuration. (see somewhere in control panel -> administration tools).

When you run a web application in anything but full trust, all the dlls in the bin directory run in a partial trust mode.
Strong named assemblies that are NOT in the GAC but in you bin directory, can not by default be called from a partial trusted assembly

So in this case i have my project dll, spring, nhibernate and log4net in the bin directory, plus any dependant dlls. nhibernate and log4net are strong named, but i can only call log4net from my app, not nhibernate. Why is this? its because log4net has an assembly level attribute on it.

[assembly: System.Security.AllowPartiallyTrustedCallers()]

This attribute allows my partially trusted application to call into it without throwing an exception. Details can be found on msdn, its something to do with LinkDemand.

Now it gets tricky, that would mean all the dll's that i have in the bin directory need this attribute. How would i do this?, I could get all the sources for them and recompile, but what happens if i can't get the source, or i have a 3rd party app that is proprietary. I do the following instead:

1. get all the dll's and disassemble them
2. add the AllowPartiallyTrustedCallers attribute to them in the MSIL file
3. remove all signing code from the assembly
4. remove all public keys and hashes from the assembly
5. update any extern assembly declarations, by removing the public hash requirement
6. reassemble the dll's again.

What does this do? It removes all strong names from the assemblies and also updates the references to not require the strong named versions.
As we dont have the keys that sign the dll, we can't resign them, but we can remove the signing altogether.
We could resign them all with new keys that we created and update the references, but that sounds like a lot of work for no gain.
We are going to be running in partial trust mode so we just don't need strong named assemblies.
This process probably wont work in all circumstances mind you.

37 comments:

Anonymous said...

Hiya! I know this is kinda off topic but I'd figured I'd ask.
Would you be interested in trading links or maybe guest writing
a blog article or vice-versa? My website discusses a lot of the same topics as yours and
I feel we could greatly benefit from each other.
If you're interested feel free to send me an e-mail. I look forward to hearing from you! Wonderful blog by the way!

My weblog los angeles dj

Anonymous said...

I used to be suggested this blog via my cousin. I am not positive whether this publish is written by means of him as nobody else understand such specified approximately my trouble.
You are amazing! Thank you!

Look at my web blog :: Bluehost Ratings

Anonymous said...

Howdy just wanted to give you a quick heads up.
The words in your article seem to be running off the screen in Chrome.
I'm not sure if this is a formatting issue or something to do with web browser compatibility but I figured I'd post to let you
know. The layout look great though! Hope you get the
issue solved soon. Kudos

Look into my page web hosting business model

Anonymous said...

Excellent beat ! I wish to apprentice at the same time
as you amend your web site, how can i subscribe for a weblog website?
The account helped me a acceptable deal. I have been tiny bit acquainted
of this your broadcast provided vibrant transparent concept

my blog ... ZorPorno

oakleyses said...

canada goose, louis vuitton, replica watches, juicy couture outlet, pandora jewelry, canada goose, ugg,uggs,uggs canada, doudoune moncler, canada goose outlet, canada goose uk, canada goose jackets, louis vuitton, moncler outlet, barbour, pandora charms, ugg, moncler, louis vuitton, ugg uk, lancel, barbour uk, marc jacobs, moncler, links of london, karen millen uk, toms shoes, swarovski, wedding dresses, canada goose, louis vuitton, ugg,ugg australia,ugg italia, pandora jewelry, moncler, moncler outlet, supra shoes, hollister, swarovski crystal, thomas sabo, juicy couture outlet, canada goose outlet, moncler uk, pandora uk, coach outlet, ugg pas cher, louis vuitton, montre pas cher, canada goose outlet, moncler

memohost said...


شركة تنظيف كنب بمكة
شركة تنظيف شقق بمكة
شركة تنظيف فلل بمكة
شركة تنظيف منازل بمكة
شركة رش مبيدات بمكة
شركة نقل عفش بمكة

seocom said...

16
شركة تنظيف فلل بالهفوف
من المعروف أن الفلل مساحتها واسعة ولا تتمكن السيدة من القيام بمهمة التنظيف بنفسها نظراً لتعدد الغرف ووجود قسم خارجي للفلل والحل الأفضل هنا هو أن يتم اللجوء إلى شركة تنظيف الفلل بالهفوف لأننا من الرواد في هذا المجال حيث أن الشركة وفرت لكم أعداد كبيرة من العمالة المحترفة في هذا المجال لكي يتم إنجاز العمل في وقت قياسي فتقوم الشركة بالاتفاق مع العميل على موعد محدد وتحرص على تسليم الفلة في هذا الوقت لأن المصداقية والالتزام هو أساس الثقة بين العميل والشركة، لذلك احرص الآن على التعامل معنا للاستفادة من مميزات أفضل شركة في عامل النظافة بالإضافة أننا نعتمد على العمالة المدربة سواء كانت العمالة المصرية والعمالة الفلبينية والعمالة المصرية.

khaled said...

افضل خدمات التنظيف المميزة والشاملة في شركة إنقاذ.
تمتلك الشركه افضل العمالة الاحترافية والمتميزة في تقديم خدمات نظافة مثالية ذات كفاءة كبيرة.
شركة إنقاذ تمتلك احدث الاجهزة في مجال التنظيف.
خدمات شركتنا بأقل الاسعار وتناسب جميع المستويات في المجتمع.
خدمات التنظيف الشاملة لتنظيف المنازل والفلل والشقق والشركات والبيوت.
وتقدم الشركة خدمات مميزة في تنظيف المجالس والكنب.
وتنظيف السجاد والموكيت والستائر " بالبخار

شركة تنظيف بالدمام

شركة تنظيف منازل بالدمام

شركة تنظيف كنب بالدمام

شركة مكافحة حشرات بالدمام

شركه مكافحة حشرات بالدمام

شركة رش مبيدات بالدمام

شركة مكافحة النمل الابيض بالدمام

شركة تسليك مجاري بالدمام

تسليك مجاري بالدمام

seocom said...

شركة تنظيف خزانات بالمدينة بالمنورة
الشركات الرائدة في هذا المجال وتعقيم الخزانات ولها أهمية كبيرة في الخزانات وتنظيفها من الترسبات وصالحة للأستخدام ولصحة الأسرة وهي من أفضل الشركات لأنها تعمل على تنقية مياة الشرب عن طريق وضع مواد لغسل حزان المياة من أي رواسب موجودة داخل مياه الشرب وهذه الخزانات تكون آمنة علي المياة وهي لا تتفاعل ب

ahmed said...

شركه كشف تسربات بابها وخميس مشيط
من الاعمال التي يجب دائما مراعتها وهيا عمليه كشف التسريبات التي تضرر ضررا كبير بالمنزل دائما اذا تم اهمالها لذالك يجب دائما
الاتصال بشركه كشف التسريبات باجنوب شركه الحلم كلين افضل شركه كشف تسربات بالجنوب للتخصل من عمليه كشف التسربات التي تضر منزلكم نحن نستخدم افضل واحدث الالات علي الاطلاق افضل العمال الذين لهم خبره عالهي في عملهي كشف التسربات
لذالك فكل سكان منطه الجنوب يتم التعمال معهم ويستخدمون شركه كشف التسربات بالجنوب شركتنا شركه الحلم كلين من افضل الشركات الرائده في الجنوب والمملكه ايضا لدينا فروع في جميع انحاء المملكه لاجل عمليه كشف التسريبات
شركه تنظيف خزانات
تنظيف الخزانات يجب دائما الحرث علي تنظيف الخزانات من اجل الحفاظ علي نظافه المياه دائما من التلوث الذي يصيب الانسان بالميكروبات والجراثيم نتيجه وجوب شوائب ورواسي في اسفل الخزان ولهذا يجب الالتصال بشركه تنظيف خزانات شركه الحلم كلين

صحتي said...

شركة الايمان لمكافحه الحشرات المنزليه بمختلف اشكالها وانواعها تقدم لكم خدمات رش مبيدات رائعه فنستطيع ان نخلصك من الصراصير والبق والعته والفئران وكذلك الحشرات الطائره وايضا نجعل المنازل معقمه ونظيفه لاننا لدينا افضل معقمات و مطهرات للمنازل التي حدث بها تلوث شديد و ميكروبات شديده بسبب وجود الحشرات بها كما اننا ايضا نقوم بوضع المبيدات الوقايه لكم لنحافظ على المنزل من دخول الحشرات به فيمكنك ان تقوم بالتعامل معنا فنحن نذهب الى جميع المدن
شركة مكافحة حشرات بجازان

شركة مكافحة حشرات ببيش

شركة مكافحة حشرات باحد المسارحة

شركة مكافحة حشرات بالداير

شركة مكافحة حشرات بالعيدابي

صحتي said...

شركة نقل عفش بجازان وبيش والداير واحد المسارحة هي شركة متميزة تقوم بنقل الاثاث بدون أي خسائر فاننا من الشركات المتميزة كثيراً التي تقدم لكم اعمال نقل العفش من وإلى أي مكان في مدينة احد المسارحة وأيضاً فى باقى المدن الاخرى داخل المملكة العربية السعودية فنحن نستطيع الذهاب الى أي مكان اخر لاننا لدينا افضل سيارات نقل عفش في احد المسارحة ولدينا أيضاً افضل أوناش ورافعات وكذلك لدينا افضل عمال يقومون باعمال التغليف والتعبئة والفك والتركيب
شركة نقل عفش بجازان
شركة نقل عفش ببيش
شركة نقل عفش باحد المسارحة
شركة نقل عفش بالداير
شركة نقل عفش بالعيدابي

صحتي said...

شركة عزل خزانات بجازان وبيش تقدم لكم خدمة العزل الجيدة والتي تشمل جميع انواع خزانات المياه فنحن نقوم بعزل الخزانات المصنعة من الصاج وكذلك الخزانات الخرسانية وأيضاً الخزانات الحديد والانواع المتعددة الاخرى لان الخزانات تختلف كثيرا من حيث الاشكال والانواع ولكن سوف تجد لدينا كل ما يؤهلنا لعزل الخزان بالشكل الصحيح ولدينا أيضاً الخصومات الكثيرة على اعمال عزل خزانات المياه كما ان شركة عزل اسطح باحد المسارحة والداير تقدم لعملائها ارخص الاسعار لعزل الاسطح ولعزل الارضيات وكذلك لعزل خزانات المياه وعزل المسابح وعزل اي مكان اخر يحتاج الى العزل بواسطة افضل المواد العازلة فاننا لدينا خصومات رائعة على اسعار عزل الاسطح وعزل اي مكان فيمكنك الاستفادة من هذه الخصومات الكبيرة التي سوف توفر لكم اموالكم مع ضمان ان عملية العزل لديكم سوف تدوم طوال العمر
شركة عزل بجازان
شركة عزل اسطح ببيش
شركة عزل اسطح باحد المسارحة
شركة عزل اسطح بالداير
شركة عزل اسطح بالعيدابي
شركة عزل خزانات ببيش
شركة عزل خزانات باحد المسارحة
شركة عزل خزانات بالداير
شركة عزل خزانات بالعيدابي


Mai said...

الجميرة
شركة مكافحة الصراصيرعجمان
شركة تنظيف شقق فى عجمان
شركات تنظيف الفلل عجمان
خدمات عجمان

EMAN said...

شركة الصفرات لتنظيف المكيفات بالرياض


شركة الصفرات لعزل الاسطح بالرياض

شركة الصفرات لتنظيف الفلل بالرياض


شركة الصفرات لتنظيف المجالس بالرياض


شركة الصفرات لعزل الخزانات بالرياض


شركة الصفرات لتسليك المجاري الرياض

شركةالصفرات لتنظيف الخزانات بالرياض

شركة الصفرات لتنظيف الكنب بالرياض

Awad Elsayed said...

تنظيف منازل بالرياض

تنظيف مجالس بالرياض

تنظيف فلل بالرياض

تنظيف خزانات بالرياض

تنظيف شقق بالرياض

غسيل مكيفات بالرياض

تنظيف بالرياض

تنظيف مسابح بالرياض

تنظيف سجاد بالرياض

Awad Elsayed said...

شركة كشف تسربات بخميس مشيط

شركة عزل خزانات بخميس مشيط

شركة عزل اسطح بخميس مشيط

تنظيف خزانات بخميس مشيط

شركة تنظيف بخميس مشيط

شركة الحرمين

Unknown said...

تنظيف الكرفانات من الاعمال الضروريه التي يجب دائما الفحاظ عليها لصغر حجمها ولملئها بالاوساخ نتيجه لتواجدها بأماكن كتثيره ومعرضه للاتربه دائما مع شركه الحلم كلين افضل شركه تنظيف كرفانات باالجنوب شركه تنظيف كرفانات بابها وخميس مشيط بأرخص الاسعار علي الاطلاق
شركه تنظيف منازل بالقصيم
شركه تنظيف خزانات بالقصيم
شركه تركيب اثاث ايكيا بابها
شركه تنظيف مجالس بالقصيم
شركه تنظيف خزانات ببيشه

معلومات تهمك said...


شركة-طارد-حمام-الرياض
شركة-تعقيم-بالدمام
شركة-طارد-حمام-بالدمام
شركة-تسليك-مجاري-بالجبيل
شركة-تسليك-مجاري-بالقطيف
شركة-تسليك-مجاري-بالخبر
شركة-تسليك-مجاري-بالظهران
شركة-تسليك-مجاري-بالدمام
مكافحة-النمل-الابيض-راس-تنوره
مكافحة-النمل-الابيض-بالقطيف

???? said...

شركه تنظيف منازل بابها

yasser abdo said...

1.شركة تنظيف سجاد الشارقه
2.شركة مكافحة النمل الابيض الشارقة
3.شركة مكافحة الحشرات دبي
4.شركة مكافحة حشرات الشارقة
5.شركة تنظيف كنب الشارقه

yasser abdo said...

6.شركة تنظيف منازل الشارقه
7.شركة تنظيف منازل دبي
8.شركة تنظيف مطابخ الشارقة
9.شركة تنظيف مطابخ في دبي
10.شركة تنظيف سجاد دبي

yasser abdo said...

1.شركة تنظيف مطابخ الشارقه
2.شركة مكافحة حشرات الشارقة
3.شركة مكافحه حشرات دبي
4.شركة تنظيف منازل دبي
5.شركة تنظيف مطابخ دبي
6.شركة تنظيف بالبخار دبي

احمد ابو ادم said...
This comment has been removed by the author.
احمد ابو ادم said...

صيانة افران غاز بالخرج

تصليح افران غاز بالرياض

محمد said...

شركه كشف تسربات بجده
شركه عزل خزانات بمكه
شركه عزل اسطح بمكه
شركه عزل خزانات بجده
شركه عزل اسطح بجده
شركه عزل اسطح بجده

Anonymous said...

go see it here Discover More Click Here Our site that site

عبدالله ابراهيم said...

شركة تمديد غاز بالرياض
شركة ترميم منازل بالرياض
شركة عزل خزانات بالرياض
شركة كشف تسربات معتمدة

شرك انجاز الرياض said...

كيف امنع تسرب الماء من الخزان مع شركة انجاز الرياض المتخصصة في عزل الخزانات الارضيه

مع فريق كامل من العماله المدربه علي عمل العزل المائي للخزانات لمنع تسرب المياه

لان التسرب من الخزان يسبب اضرار كثيره مثل ارتفاع فاتورة المياه

وتدهور جدران الخزان من التصدعات والاملاح عمل هبوط في البلاط مع شركتنا انتا في امان .

شرك خدمات المنازل said...



كشف التسربات بأحدث الاجهزه

جهاز أكوا فون وهو من أشهر وأكفأ الاجهزة المستخدمة في كشف التسربات، ويعمل الجهاز بدقة عالية من خلال ضغط خطوط المياه الباردة والساخنة بغاز النتروجين مما يؤدي الي حدوث اهتزازات لتحديد المكان الموجود به التسربات.
قياسات الضغط وهو جهاز يعمل عن طريق توليد ضغط بأنابيب المياه وعند وجود أي تسربات يتحرك مؤشر الضغط من مكانه.
جهاز الحقل الكهرومغناطيسي وهو جهاز يعمل عن طريق إرسال موجات كهرومغناطيسية لأنابيب المياه ويوجد به قطع لاسلكية.
الذبذبات الترددي هو جهاز حديث يعتمد علي تكنولوجيا الذبذبات والترددات الميجا هيرتز من خلال ارسالها داخل المواسير من ثم تعمل شاشة العرض علي توضيح مسار الذبذبات ليعلمنا بأماكن التسربات.
الميكروفون الارضي وهو جهاز يتم استخدامه من خلال الاستماع لصوت تسربات المياه ويتم استخدامه في مناطق محدودة.

شركه تنظيف بالرياض said...

[Window Title]
Notepad

[Main Instruction]
Do you want to save changes to C:\Users\DUBAI STORE\Desktop\New Windows PowerShell Script.ps1?

[Save] [Don't Save] [Cancel]

tawkl said...

شركة غسيل مكيفات بالخرج


شركة تنظيف سجاد بالخرج


شركة جلي بلاط بالخرج


شركة تنظيف كنب بالخرج


شركة تنظيف خزانات بالخرج


شركة تنظيف مكيفات بالخرج


شركة تنظيف بالخرج

221 said...

شركة رش مبيدات بالرياض

فرحات جروب said...

شركة تنظيف مكيفات بجازان
فشركة تنظيف مكيفات بالرياض
شركة تنظيف مكيفات بالدمام

هيثم said...

تنظيف مجالس بالقصيم


كشف تسربات المياة بالقصيم


فني كهرباء بالقصيم


طاردحمام بالقصيم


شركة عزل بالقصيم

شركة النجوم said...

شركة عزل خزانات بحي الياسمين
اهمية عزل الاسطح الشينكو
شركه عزل حمامات ومطابخ
شركة عزل خزانات بحي الحمراء

Anonymous said...

"تصليح شاشة تلفزيون سامسونج الرياض"
"تصليح افران جنوب الرياض"
"صيانة شاشات سامسونج الرياض"