使用国外windows主机常见问题的解决办法
楔子:最近要上一个.net的网站,而这个网站是采用xslt的,xslt中有使用到自定义脚本msxsl:script,但放到godaddy的服务器上去之后,却报出了黄页错误,错误如下:
经过多方的排查,发现是由于xslt文件中包含有msxsl:script脚本的原因造成的,进一步细究,发现执行msxsl:script需要代码执行权限为full trust,而在godaddy的虚拟主机中,代码执行权限为Medium。
郁闷啊,我不太可能因为这样而放弃在xslt中执行script,因为如果不能执行script,那么xslt的开发难度将大增加,所以只好选择其它主机了。最让人郁闷的是,我刚刚在godaddy续费,早知如此,就不去他们家续费了。
随后,我又发信去godaddy和lunarPages咨询关于full trust level的事情,得到的答复是godaddy不支持,而lp是可以支持full trust的,godaddy的主机是.net 1.1支持full trust level,而lp的主机则是完全支持的,那然后我也是花了一天的时间,去找关于full trust的主机,需要这个功能的朋友注意了。
哪些美国主机可以支持Full Trust Level?
ixWebHosting 其实之前我也试过他们的主机,但是说句实在话,速度和稳定性方面实在是不也恭维,我当时是冲着15个IP去的,价格上要比godaddy略高,但加上送的15个IP以及3个免费域名,价格肯定要优于godaddy了,单单是15个独立IP,就值$2*15*12=360美元了。但从我试用并监测二十来天的情况下来看,我个人认为ix的windows主机,基本上可以不考虑。
LunarPages 我没有用过,没有发言权了,但idcspy的版主说最近速度有些慢,也不推荐购买
arvixe.com 这个公司好像在网上没什么消息,中文有几篇文章都是说好的,不排除是托,也极有可能是中国人在国外搞的小主机公司,但有一点,他们是支持Full Trust Level的,有用过这个公司主机的朋友留下言。
WebHost4life 这个公司比较有意思,他们有中文的客户混在idcspy论坛里,使用的人好像也不多,但可以肯定的是,支持full trust level的。
最后一招,自己买VPS/VDS或者独立主机了,目前godaddy的vds一年大概要两千多吧,windows主机最起码也得买512内存的了,太小了根本跑不起来,谁让windows系列产品都是吃内存大户呢。其它的也有便宜的,但我觉得应该要在2500-3000这个级别才可以用。
此外为了服务器安全,很多国外的Asp.net虚拟主机(比如GoDaddy)都把设置代码执行权限设置为Medium Trust Level,这时候,与Full Trust Level不同,Asp.net程序会有很多限制。如果你正在开发通用的Web产品,比如BBS、Blog、CMS、Portal,那么为了让产品能更大程度适应各种运行环境,你需要考虑到Asp.net中等安全模式的相关问题。
什么是中等安全模式?
Asp.net通过信任级别(Trust Level)设置代码执行权限,默认有5种,分别是:Full、High、Medium、Low、Minimal。虚拟主机提供商通常在系统的 machine.config配置了<system.web><trust level=’Medium’ />…
常见异常信息:
中等安全模式有哪些限制?
CodeDom、Emit以及基于CodeDom、Emit实现的Ioc、AOP技术无法使用。
VirtualPathProvider无法使用。
BuildProvider无法使用。
HttpWorkRequst无法使用。
OleDb无法使用。默认情况下Access数据库无法使用,不过GoDaddy可以通过管理面板将Access访问权限开启。
P/Invoke无法使用。System.Data.SQLite及sqlite-net都 是通过P/Invoke调用C语言版本的SQLite.dll实现的,因此也不能使用了。
ReflectionPermission及RestrictedMemberAccess无法访问,导致Ado.net for Entity Framework、DB4O,以及好多ORM工具无法使用。
一些常见问题的解决办法
SQLite无法使用:可以使用Access或VistaDB作为替换。
BlogEngine.net默认安装时出错:只需将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虚拟主机商