國外windows主機(jī)要注意權(quán)限級別
Request failed. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Exception: Request failed. |
經(jīng)過多方的排查,發(fā)現(xiàn)是由于xslt文件中包含有msxsl:script腳本的原因造成的,進(jìn)一步細(xì)究,發(fā)現(xiàn)執(zhí)行msxsl:script需要代碼執(zhí)行權(quán)限為full trust,而在godaddy的虛擬主機(jī)中,代碼執(zhí)行權(quán)限為Medium。
郁悶啊,我不太可能因?yàn)檫@樣而放棄在xslt中執(zhí)行script,因?yàn)槿绻荒軋?zhí)行script,那么xslt的開發(fā)難度將大增加,所以只好選擇其它主機(jī)了。最讓人郁悶的是,我剛剛在godaddy續(xù)費(fèi),早知如此,就不去他們家續(xù)費(fèi)了。
隨后,我又發(fā)信去godaddy和lunarPages咨詢關(guān)于full trust level的事情,得到的答復(fù)是godaddy不支持,而lp是可以支持full trust的,godaddy的主機(jī)是.net 1.1支持full trust level,而lp的主機(jī)則是完全支持的,那然后我也是花了一天的時(shí)間,去找關(guān)于full trust的主機(jī),需要這個(gè)功能的朋友注意了。
哪些美國主機(jī)可以支持Full Trust Level?
ixWebHosting 其實(shí)之前我也試過他們的主機(jī),但是說句實(shí)在話,速度和穩(wěn)定性方面實(shí)在是不也恭維,我當(dāng)時(shí)是沖著15個(gè)IP去的,價(jià)格上要比godaddy略高,但加上送的15個(gè)IP以及3個(gè)免費(fèi)域名,價(jià)格肯定要優(yōu)于godaddy了,單單是15個(gè)獨(dú)立IP,就值$2*15*12=360美元了。但從我試用并監(jiān)測二十來天的情況下來看,我個(gè)人認(rèn)為ix的windows主機(jī),基本上可以不考慮。
LunarPages 我沒有用過,沒有發(fā)言權(quán)了,但idcspy的版主說最近速度有些慢,也不推薦購買
arvixe.com 這個(gè)公司好像在網(wǎng)上沒什么消息,中文有幾篇文章都是說好的,不排除是托,也極有可能是中國人在國外搞的小主機(jī)公司,但有一點(diǎn),他們是支持Full Trust Level的,有用過這個(gè)公司主機(jī)的朋友留下言。
WebHost4life 這個(gè)公司比較有意思,他們有中文的客戶混在idcspy論壇里,使用的人好像也不多,但可以肯定的是,支持full trust level的。
最后一招,自己買VPS/VDS或者獨(dú)立主機(jī)了,目前godaddy的vds一年大概要兩千多吧,windows主機(jī)最起碼也得買512內(nèi)存的了,太小了根本跑不起來,誰讓windows系列產(chǎn)品都是吃內(nèi)存大戶呢。其它的也有便宜的,但我覺得應(yīng)該要在2500-3000這個(gè)級別才可以用。
此外為了服務(wù)器安全,很多國外的Asp.net虛擬主機(jī)(比如GoDaddy)都把設(shè)置代碼執(zhí)行權(quán)限設(shè)置為Medium Trust Level,這時(shí)候,與Full Trust Level不同,Asp.net程序會有很多限制。如果你正在開發(fā)通用的Web產(chǎn)品,比如BBS、Blog、CMS、Portal,那么為了讓產(chǎn)品能更大程度適應(yīng)各種運(yùn)行環(huán)境,你需要考慮到Asp.net中等安全模式的相關(guān)問題。
什么是中等安全模式?
Asp.net通過信任級別(Trust Level)設(shè)置代碼執(zhí)行權(quán)限,默認(rèn)有5種,分別是:Full、High、Medium、Low、Minimal。虛擬主機(jī)提供商通常在系統(tǒng)的 machine.config配置了<system.web><trust level=’Medium’ />…
常見異常信息:
Required permissions cannot be acquired. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. SecurityException: Request for the permission of type ‘System.Security.Permissions.ReflectionPermission failed 或者: System.Security.SecurityException: Request for the permission of type ‘System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed. |
中等安全模式有哪些限制?
CodeDom、Emit以及基于CodeDom、Emit實(shí)現(xiàn)的Ioc、AOP技術(shù)無法使用。
VirtualPathProvider無法使用。
BuildProvider無法使用。
HttpWorkRequst無法使用。
OleDb無法使用。默認(rèn)情況下Access數(shù)據(jù)庫無法使用,不過GoDaddy可以通過管理面板將Access訪問權(quán)限開啟。
P/Invoke無法使用。System.Data.SQLite及sqlite-net都 是通過P/Invoke調(diào)用C語言版本的SQLite.dll實(shí)現(xiàn)的,因此也不能使用了。
ReflectionPermission及RestrictedMemberAccess無法訪問,導(dǎo)致Ado.net for Entity Framework、DB4O,以及好多ORM工具無法使用。
一些常見問題的解決辦法
SQLite無法使用:可以使用Access或VistaDB作為替換。
BlogEngine.net默認(rèn)安裝時(shí)出錯(cuò):只需將Web.config中的<system.web><trust level=’Medium’/>刪除即可。
LINQ to Entities / ADO.NET Entity Framework無法使用:參考http://mosesofegypt.net/post/Entity-Framework-minimum-permission-considerations.aspx
Discuz!net無法使用:使用YetAnotherForum代替。
附上國外主要的Windows虛擬主機(jī)商
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。