ASP.NET网页设计假造主机上asp.net运转权限不敷成绩及解...
听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:
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
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的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。 由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。 可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。 当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。 是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
页:
[1]