仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 762|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计假造主机上asp.net运转权限不敷成绩及解...

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:43:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了)asp.net|办理|成绩|假造主机有些时分我们写的asp.net使用程序是运转在假造主机上。有一些假造主机多是因为平安的思索,对asp.net做了权限设置,会招致我们的使用程序没法一般运转。
成绩征象:
因为某种缘故原由,asp.net不克不及加载某些dll文件,呈现以下毛病提醒:ServerErrorin/Application.
---------------------------------------------
Requiredpermissionscannotbeacquired.
Description:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Pleasereviewthestacktraceformoreinformationabouttheerrorandwhereitoriginatedinthecode.
ExceptionDetails:System.Security.Policy.PolicyException:Requiredpermissionscannotbeacquired.
SourceError:
Anunhandledexceptionwasgeneratedduringtheexecutionofthecurrentwebrequest.Informationregardingtheoriginandlocationoftheexceptioncanbeidentifiedusingtheexceptionstacktracebelow.
StackTrace:

[PolicyException:Requiredpermissionscannotbeacquired.]
System.Security.SecurityManager.ResolvePolicy(Evidenceevidence,PermissionSetreqdPset,PermissionSetoptPset,PermissionSetdenyPset,PermissionSet&denied,BooleancheckExecutionPermission)+2738293
System.Security.SecurityManager.ResolvePolicy(Evidenceevidence,PermissionSetreqdPset,PermissionSetoptPset,PermissionSetdenyPset,PermissionSet&denied,Int32&securitySpecialFlags,BooleancheckExecutionPermission)+57
[FileLoadException:CouldnotloadfileorassemblyMicrosoft.Practices.ObjectBuilder,Version=1.0.51205.0,Culture=neutral,PublicKeyToken=nulloroneofitsdependencies.Failedtograntminimumpermissionrequests.(ExceptionfromHRESULT:0x80131417)]
System.Reflection.Assembly.nLoad(AssemblyNamefileName,StringcodeBase,EvidenceassemblySecurity,AssemblylocationHint,StackCrawlMark&stackMark,BooleanthrowOnFileNotFound,BooleanforIntrospection)+0
System.Reflection.Assembly.InternalLoad(AssemblyNameassemblyRef,EvidenceassemblySecurity,StackCrawlMark&stackMark,BooleanforIntrospection)+211
System.Reflection.Assembly.InternalLoad(StringassemblyString,EvidenceassemblySecurity,StackCrawlMark&stackMark,BooleanforIntrospection)+141
System.Reflection.Assembly.Load(StringassemblyString)+25
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(StringassemblyName,BooleanstarDirective)+32
  成绩剖析:
依据我的察看,asp.net使用程序间接天生的dll能够一般加载,由asp.net间接挪用的内部dll也能够一般加载,可是仅被内部dll援用的其他内部dll不克不及加载。我的料想是:因为权限是不完整的,asp.net使用自己天生的dll和间接援用的dll能够经由过程权限的承继取得权限,而仅被内部dll援用的其他内部dll由于权限的限定不克不及承继权限,因而呈现了权限不敷的成绩。
  成绩办理:
经由过程在我电脑的实验,推想假造主机上修正了根web.config(在我电脑上其地位为C:WINDOWSMicrosoft.NETFrameworkv2.0.50727CONFIG)的设置.
默许web.config的权限设置节以下:
<locationallowOverride="true">
<system.web>
<securityPolicy>
<trustLevelname="Full"policyFile="internal"/>
<trustLevelname="High"policyFile="web_hightrust.config"/>
<trustLevelname="Medium"policyFile="web_mediumtrust.config"/>
<trustLevelname="Low"policyFile="web_lowtrust.config"/>
<trustLevelname="Minimal"policyFile="web_minimaltrust.config"/>
</securityPolicy>
<trustlevel="Full"originUrl=""/>
</system.web>
</location>
推想假造主机上修正以后的设置:
<locationallowOverride="false">
<system.web>
<securityPolicy>
<trustLevelname="Full"policyFile="internal"/>
<trustLevelname="High"policyFile="web_hightrust.config"/>
<trustLevelname="Medium"policyFile="web_mediumtrust.config"/>
<trustLevelname="Low"policyFile="web_lowtrust.config"/>
<trustLevelname="Minimal"policyFile="web_minimaltrust.config"/>
</securityPolicy>
<trustlevel="High"originUrl=""/>
</system.web>
</location>
他起首设置了allowOverride为false,这就制止了在用户web.config中从头界说权限的才能。然后,他界说trustlevel为High,而不是默许的Full。经我测试,只需trustlevel不为Full,仅被内部dll援用的其他内部dll就不克不及被加载。因而,我倡议手艺撑持将allowOverride节设置为true。如许我就能够在web.config中从头指定权限了。
例:<trustlevel="Full"originUrl=""/>
比来已不研讨aps.net了,因而也没有仔细往查找深层的缘故原由,也许我的熟悉另有误。但愿那位妙手能够道出深层的缘故原由,或斧正我的毛病。
前天傍晚我发表了《Java的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。
老尸 该用户已被删除
沙发
发表于 2015-1-19 21:40:37 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
小妖女 该用户已被删除
板凳
发表于 2015-1-26 23:22:40 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
透明 该用户已被删除
地板
发表于 2015-2-4 21:47:46 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
海妖 该用户已被删除
5#
发表于 2015-2-10 19:01:12 | 只看该作者
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-3-1 13:48:52 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
兰色精灵 该用户已被删除
7#
发表于 2015-3-10 18:22:49 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
再见西城 该用户已被删除
8#
发表于 2015-3-17 09:09:28 | 只看该作者
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
简单生活 该用户已被删除
9#
发表于 2015-3-24 05:09:20 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 05:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表