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)過(guò)多方的排查,發(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的開(kāi)發(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è)功能的朋友注意了。
哪些美國(guó)主機(jī)可以支持Full Trust Level?
ixWebHosting 其實(shí)之前我也試過(guò)他們的主機(jī),但是說(shuō)句實(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)測(cè)二十來(lái)天的情況下來(lái)看,我個(gè)人認(rèn)為ix的windows主機(jī),基本上可以不考慮。
LunarPages 我沒(méi)有用過(guò),沒(méi)有發(fā)言權(quán)了,但idcspy的版主說(shuō)最近速度有些慢,也不推薦購(gòu)買
arvixe.com 這個(gè)公司好像在網(wǎng)上沒(méi)什么消息,中文有幾篇文章都是說(shuō)好的,不排除是托,也極有可能是中國(guó)人在國(guó)外搞的小主機(jī)公司,但有一點(diǎn),他們是支持Full Trust Level的,有用過(guò)這個(gè)公司主機(jī)的朋友留下言。
WebHost4life 這個(gè)公司比較有意思,他們有中文的客戶混在idcspy論壇里,使用的人好像也不多,但可以肯定的是,支持full trust level的。
最后一招,自己買VPS/VDS或者獨(dú)立主機(jī)了,目前godaddy的vds一年大概要兩千多吧,windows主機(jī)最起碼也得買512內(nèi)存的了,太小了根本跑不起來(lái),誰(shuí)讓windows系列產(chǎn)品都是吃內(nèi)存大戶呢。其它的也有便宜的,但我覺(jué)得應(yīng)該要在2500-3000這個(gè)級(jí)別才可以用。
此外為了服務(wù)器安全,很多國(guó)外的Asp.net虛擬主機(jī)(比如GoDaddy)都把設(shè)置代碼執(zhí)行權(quán)限設(shè)置為Medium Trust Level,這時(shí)候,與Full Trust Level不同,Asp.net程序會(huì)有很多限制。如果你正在開(kāi)發(fā)通用的Web產(chǎn)品,比如BBS、Blog、CMS、Portal,那么為了讓產(chǎn)品能更大程度適應(yīng)各種運(yùn)行環(huán)境,你需要考慮到Asp.net中等安全模式的相關(guān)問(wèn)題。
什么是中等安全模式?
Asp.net通過(guò)信任級(jí)別(Trust Level)設(shè)置代碼執(zhí)行權(quán)限,默認(rèn)有5種,分別是:Full、High、Medium、Low、Minimal。虛擬主機(jī)提供商通常在系統(tǒng)的 machine.config配置了system.web>trust level=’Medium’ />…
常見(jiàn)異常信息:
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ù)無(wú)法使用。
VirtualPathProvider無(wú)法使用。
BuildProvider無(wú)法使用。
HttpWorkRequst無(wú)法使用。
OleDb無(wú)法使用。默認(rèn)情況下Access數(shù)據(jù)庫(kù)無(wú)法使用,不過(guò)GoDaddy可以通過(guò)管理面板將Access訪問(wèn)權(quán)限開(kāi)啟。
P/Invoke無(wú)法使用。System.Data.SQLite及sqlite-net都 是通過(guò)P/Invoke調(diào)用C語(yǔ)言版本的SQLite.dll實(shí)現(xiàn)的,因此也不能使用了。
ReflectionPermission及RestrictedMemberAccess無(wú)法訪問(wèn),導(dǎo)致Ado.net for Entity Framework、DB4O,以及好多ORM工具無(wú)法使用。
一些常見(jiàn)問(wèn)題的解決辦法
SQLite無(wú)法使用:可以使用Access或VistaDB作為替換。
BlogEngine.net默認(rèn)安裝時(shí)出錯(cuò):只需將Web.config中的system.web>trust level=’Medium’/>刪除即可。
LINQ to Entities / ADO.NET Entity Framework無(wú)法使用:參考http://mosesofegypt.net/post/Entity-Framework-minimum-permission-considerations.aspx
Discuz!net無(wú)法使用:使用YetAnotherForum代替。
附上國(guó)外主要的Windows虛擬主機(jī)商
標(biāo)簽:青海 張家界 玉溪 通遼 鐵嶺 北京 北京 廣元
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《國(guó)外windows主機(jī)要注意權(quán)限級(jí)別》,本文關(guān)鍵詞 國(guó)外,windows,主,機(jī)要,注意,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。