ASP.NET编程:办理System.Threading.Tasks.Task用户身份摹拟(identity impersonate)的成绩仓酷云 ...
我有个同学,他是搞net网页编程的,他给我说“net网页编程不是效率低,而是速度慢。”,我不是搞net网页编程的,我实在想不透这句话的含义,难道执行速度不就是效率低吗?难道执行速度慢还成效率高了?在办理了ASP.NET会见共享文件夹的成绩以后,我们碰到了一个新的成绩。在找找看调剂创建索引过程当中,在共享文件夹中创立新文件夹时呈现毛病:System.UnauthorizedAccessException:Accesstothepath192.168.18.18zkIndexJobJobOfferisdenied.
之前我们明显经由过程测试代码考证了能够在共享文件夹中创建文件夹的,如今怎样不可呢?
独一分歧的地方在于这个操纵是在System.Threading.Tasks.Task中举行的,也就是异步的。
前一篇文章中会见共享文件夹时,用户身份是经由过程web.config中的设置摹拟的:
<system.web><identityimpersonate="true"userName="ZzkIndexer"password="zzk.cnblogs.com"/></system.web>如今呈现UnauthorizedAccess非常,很有多是在Task中异步实行时,不是以ZzkIndexer这个用户身份实行的。
因而,从这个中央动手,把要办理的成绩变成:“怎样在异步操纵中也一向利用web.config中所设置的摹拟用户身份?”
在互联网陆地中苦苦寻找。。。终究找到了线索!它就是——<alwaysFlowImpersonationPolicy>。
它的躲身的地方是C:WindowsMicrosoft.NETFramework64v4.0.30319Aspnet.config
<?xmlversion="1.0"encoding="UTF-8"?><configuration><runtime><legacyUnhandledExceptionPolicyenabled="false"/><legacyImpersonationPolicyenabled="true"/><alwaysFlowImpersonationPolicyenabled="false"/><SymbolReadingPolicyenabled="1"/><shadowCopyVerifyByTimestampenabled="true"/></runtime><startupuseLegacyV2RuntimeActivationPolicy="true"/></configuration>
MSDN中对alwaysFlowImpersonationPolicy的先容:
SpecifiesthattheWindowsidentityalwaysflowsacrossasynchronouspoints,regardlessofhowimpersonationwasperformed.
指定不管摹拟是怎样实行的,Windows标识一直流经异步点。
与alwaysFlowImpersonationPolicy绝对应的是legacyImpersonationPolicy,MSDN中的先容:
SpecifiesthattheWindowsidentitydoesnotflowacrossasynchronouspoints,regardlessoftheflowsettingsfortheexecutioncontextonthecurrentthread.
指定不管以后线程上的实行高低文的流设置怎样,Windows标识都不流经异步点。
因而,成绩的办理办法不言而喻,在Aspnet.config中将alwaysFlowImpersonationPolicy设为true,将legacyImpersonationPolicy设为false,完全设置以下:
<?xmlversion="1.0"encoding="UTF-8"?><configuration><runtime><legacyUnhandledExceptionPolicyenabled="false"/><legacyImpersonationPolicyenabled="false"/><alwaysFlowImpersonationPolicyenabled="true"/><SymbolReadingPolicyenabled="1"/><shadowCopyVerifyByTimestampenabled="true"/></runtime><startupuseLegacyV2RuntimeActivationPolicy="true"/></configuration>
经由实践查验,该办法的确无效,今朝为止未发明任何反作用。
(注:修正Aspnet.config后,必要重启以后Web站点才干失效)
在CSDN里搜索一下“初学”两字,竟有三百余篇帖子(也许更多)。有些帖子说,有了asp的基础,只要15天就能很熟悉了,我甚感自己的愚钝。更多帖子是向大家请教初学者适合看书。两个多月的时间(当然平常杂事比较多。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。 在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的 大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
页:
[1]