PHP中::、->、self、$this操作符的区别

mikel阅读(787)

在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->。

另外,如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,反之如果从类的内部访问不为const或者static变量或者方法,那么就必须使用自引用的$this。

程序到底是用来做什么的?

mikel阅读(1372)

写了这么多程序代码,归根结底要问问自己:程序到底是用来做什么的?

感触最深的莫过于就是用来让计算机干更多工作,提高人的工作效率。

简单一句话:就是让人摆脱繁琐重复劳动的舒服,让机器干机器的事儿,人干人该干的事儿,比如生孩子

可程序真的就那么靠谱吗?未必!

霍金也大声疾呼人工智能是未来人类最大的威胁!

程序开发思想演变过程:

面相过程->面向对象->面向智能->面向生命

可以看出最终程序或者计算机科技的发展都是要创造出一个类似人类的智慧体,能够自主意识,自主学习的生命体

如今很多人在研究大数据,人工智能,然后是硬件上各种传感器像不要钱似的架上在我们的身边,手机里,结果是什么,是跟多更大量的人类无法处理的数据给程序处理,结果让程序更加了解这个世界,直到利用VR创造出一个虚拟又真实的世界。

程序到底是什么,到底用来做什么?

术业有专攻 不要迷失在捷径

mikel阅读(1224)

最近在找一套系统的源码,一直找不到合适的,结果好不容易找到了,需要开通vip才能下载

说到这,就没得选择了,于是续费开通,下载下来结果还是加密的,但是钱已经交了,好在还能一直网站的源码,不亏,

但是心里总觉得别扭,自己为了套源码,花了个大价钱开通vip值还是不值?

后来想开了,值不值全看你自己,对你有用就是值!何必纠结这些,为价值买单吧!

于是引申出一个想法,怎么把我的会费赚回来,其实这套源码是给客户建站的,价值早就高出会费很多,

不过人总是贪得无厌的,就比如我,这个必须正视

于是想到为什么不自己也建一个源码论坛分享自己的好几T的源码存货给大家,

资源就是钱 看你怎么利用了 很多时候你觉得微不足道的东西或者经验,对于需要它的人就有价值

还是那句话:只要你敢卖 就有人敢买 互联网那么大 总有人为价值买单

 

写了这么多,其实也是对自己这一年以及过去的一个反思,

过去自己总是瞧不起那些改改别人的源码就卖出去的赚钱的人,也不屑于做,

可不知不觉发现国内的圈子都这样,于是就随波逐流的也这么做,结果彻底迷失了

每天都在找适合客户要求的源码,然后就改改建站,上线了,然后拿钱

可后来慢慢发现自己的东西越来越少,尽管客户越来越多,可是发现要求的开发周期越来越短,

毕竟客户要得是速度,你自己从无到有的开发出来需要3个月,现成的改改一个星期就可以上线了

特别是互联网+ 的客户,那就跟热锅上的蚂蚁,恨不得今天出个想法明天就能上线似的

分分钟就是钱,于是我们这些开发者就是最苦逼的了,只能疲于奔命,没了操守,忘记了出来混迟早要还的道理

最终迷失 在客户的项目中间,完全没了自己的产品

[转载]C#版-百度网盘API的实现(一) - 酷^$^喾 - 博客园

mikel阅读(1242)

来源: [转载]C#版-百度网盘API的实现(一) – 酷^$^喾 – 博客园

在这篇文章中,楼主将会给大家介绍一下,通过C# winform程序在后台模拟用户登陆百度网盘的基本思路

首先了解下模拟登陆的流程,如下:

一,访问http://www.baidu.com网站,获取BAIDUID的值,它存在于返回的cookie中。

二,访问https://passport.baidu.com/v2/api/?getapi&tpl=ik&apiver=v3&tt={0}&class=login({0}为时间戳)地址,同时带入BAIDUID的值,获取Token值。

三,访问https://passport.baidu.com/v2/api/?login带入一些必要参数,如用户名,密码,Token和BAIDUID等等进行登陆。

以上是需要带入的参数,后面再慢慢详解,同时BAIDUID也需要发送到服务器端。

四,登陆成功后会返回BDUSS值,存在Cookie中,这个就是我们最终要获取的值,通过这个值,我们可以操作百度网盘了,(如获取文件列表,下载文件等等操作)

[转载]C#版-百度网盘API的实现(二) - 酷^$^喾 - 博客园

mikel阅读(1417)

来源: [转载]C#版-百度网盘API的实现(二) – 酷^$^喾 – 博客园

在这篇文章中,我们通过代码来实现百度网盘的简单操作,

一,登陆,在代码中,我有一个Baidu1的类,实例化该类时回执行登陆方法,该类对外开放了三个方法,

1,GetFileDir获取根目录下的文件夹及文件,

2,DownFile下载文件

3,UpLoadFile上传文件

二,使用示例,

Badu1 baidu1 = new Baidu1(“xxxxxx@qq.com“, “xxxxxx”);

List<BaiDuFile> list = baidu1.GetFileDir();

string path = “/data/data1.txt”;
string localPath = System.Environment.CurrentDirectory + “/data/data_” + DateTime.Now.ToString(“MMddHHmmss”) + “.txt”;
FileOper fo = baidu1.DownFile(path, localPath);

path = “/data/00.jpg”;
string fileToUpload = System.Environment.CurrentDirectory + “/data/00.jpg”;
fo = baidu1.UpLoadFile(path, fileToUpload);

这里写代码不好看,所以在这里就不多做说明了,请直接下载源码查看,目前还只是实现了基本功能,希望大家多多提意见,多多交流,共同学习,进步!

源码看这里!

IIS下注册COM组件

mikel阅读(1073)

IIS下注册COM组件

以Excel为例

问题描述:

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005基本上.net导出excel文件,都需要如此配置一下,不配置有的时候没错,而配置后基本应该不会出错。

具体步骤:

1:在服务器上安装office的Excel软件.
2:在”开始”->”运行”中输入dcomcnfg.exe启动”组件服务”
3:依次双击”组件服务”->”计算机”->”我的电脑”->”DCOM配置”
4:在”DCOM配置”中找到”Microsoft  Excel 应用程序”,在它上面点击右键,然后点击”属性”,弹出”Microsoft Excel 应用程序属性”对话框
5:点击”标识”标签,选择”交互式用户”
6:点击”安全”标签,在”启动和激活权限”上点击”自定义”,然后点击对应的”编辑”按钮,在弹出的”安全性”对话框中填加一个”NETWORK  SERVICE”用户(注意要选择本计算机名),并给它赋予”本地启动”和”本地激活”权限.
7:依然是”安全”标签,在”访问权限”上点击”自定义”,然后点击”编辑”,在弹出的”安全性”对话框中也填加一个”NETWORK  SERVICE”用户,然后赋予”本地访问”权限.
8.如果交互式用户设置后出现错误8000401a,可取消交互式用户,指定为administratr,可暂时解决此问题。进一步的解决方式还有待探讨。
9.采用第8点的设置后,打开Excel可能会出现“无法使用对象引用或链接”,并且不能进行单元格粘贴。原因不明,取消设置后即可消失。

另外说明:光按以上设置并不能完全保证不出问题,因为调用OFFICE的操作可能涉及其他的系统资源,很可能依然权限不够而导致问题,只是设置EXCEL 应用程序后,还是可能会报80070005的错误,最保险的是应该在dcomcnfg中选中我的电脑然后右键属性->com安全,将里面的访问权限,启动 和激活权限全都编辑默认,在当中加上network service(iis 5.0的话,要加的是ASP.NET用户),并如前面对networkservice设置上相同的权限,这样基本上能保证不会再出什么问题。

以上为基本出路方法,但是我也遇到过应用以上方法还是报错的情况,我的环境是 windows2003 + office2003+office2007,在测试服务器上都可以导出无任何问题!但是更新了正式环境就是报错,权限都设置了还是报错,因为我的测试服 务器是默认office启动的,所以我怀疑是office版本环境问题!于是我卸载了office2007,马上测试ok了,但是重启服务器后就产生了 have not been Pre-compiled错误,导出页面都无法打开了,于是我又重新安装了office2007,页面可以打开了,但是导出excel时又开始报错!我又 把所有的权限重新设置一遍,问题依旧!后来发现两个服务器默认打开excel的程序不一样,测试环境是默认office2003打开,正式环境是 office2007打开,于是我在正式环境重新注册office2003,使其同样也是默认office2003打开程序,靠!问题终于解决了!!!

注册方法 执行    开始—-运行—-输入excel2003的安装路径,例如 “C:\Program Files\Microsoft Office\OFFICE11\excel.exe” /regserver    注意/符号前面有一个空格,其中”C:\Program Files\Microsoft Office\OFFICE11\excel.exe” 是excel2003的安装程序的路径,参数regserver表示注册的意思!
运行后,会启动Office 2003的安装程序,进行修复,重新注册。
excel2007为默认的启动程序的方法类同,可以执行   开始—-运行—-“D:\Program Files\Microsoft Office\Office12\excel.exe” /regserver
综上所述,再遇到Excel导出、导入问题时,先考虑权限问题,再考虑office的版本环境!如此基本能够解决这些问题了

 

1.IIS6按照以上操作即可解决问题

2.iis7下,由于默认的账户并非network service,因此要手动设置一下  应用程序池-》高级设置-》标识-》内置账户-》修改为NetworkService

[转载]关于COM类工厂80070005和8000401a错误分析及解决办法 - Chery的专栏 - 博客频道 - CSDN.NET

mikel阅读(1085)

来源: [转载]关于COM类工厂80070005和8000401a错误分析及解决办法 – Chery的专栏 – 博客频道 – CSDN.NET

关于COM类工厂800700058000401a错误分析及解决办法

 

问题描述:最近做一个web应用程序需要操作Excel文件,在开发环境下程序测试正常,部署到IIS后程序操作Excel文件,IIS报错,错误出现在创建Excel进程的语句,如下:

Application myExcelApp = new ApplicationClass();

IIS提示信息如下:

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

 

异常详细信息:  ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}/ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate=”true”/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。

 

问题分析:

在异常详细信息里提到“模拟”,“network  service用户”和“匿名用户”,那就首先分析一下这些概念含义。

(一)   Web.Config配置

1、身份模拟(identity impersonate),这是很关键的一句,表示web应用将为每一个请求进行客户端模拟,就是使用一个指定的账户身份访问web应用。

在不进行客户端模拟设置时,asp.net程序调用excel组件时使用的是network service用户(在xp和2000中,使用的是aspnet用户)使用设置<identity impersonate=”true”/>进行客户端模拟时,默认使用的是IUSR_MACHINENAME用户,但该用户没有调用excel组件的权限。设置客户端模拟还可以使用指定的用户,将会以此用户的身份访问web应用,但是要注意的是:由于asp.net的限制,该用户的密码不能为空。如下所示:

<identity impersonate=”true” userName=”服务器上系统用户名” password=”用户密码”/>

 

2、身份验证(authentication), 通过 <authentication> 节可以配置 ASP.NET 使用的 安全身份验证模式,以标识传入的用户。Mode选择Windows,表示使用Windows集成的身份验证模式。

<authentication mode=”Windows”/>

 

实际上以上两处配置与IIS的“目录安全性”配置相对应,若在IIS中已做配置后,Web.config里可不再设置,通常创建IIS虚拟目录时,默认会配置使用客户端模拟,模拟身份是“匿名用户”即IUSR_MACHINENAME(在xp和2000中,使用的是aspnet用户)。如下图所示:

 

(二)   Network Service系统用户

在安装IIS后,系统上会有三个值得我们关注的用户,分别是aspnetiusr_machinenameiwam_machinename,如下图所示:

在IIS 5中,asp.net应用程序通过ASPNET用户访问,在IIS 6/7中,ASPNET账户被替换成Network Service,asp.net 应用程序需要以“Network Service” 进程标识运行来访问,这个进程标识对应两个账户:IUSR_MACHINENAME和IWAM_MACHINENAME,其作用见上图。而其ASP.NET程序能访问的资源都是受Network Service限制的,这个账户能访问什么资源,ASP.NET程序才能访问资源。

Network Service账户只拥有本机部分权限,它能够以计算机的名义访问网络资源,还有认证用户有权限访问的资源。

 

综上所述,我们只用在IIS里使用“匿名用户”即以“network service”进程标识就可以访问web应用,无需再配置web.config文件。但是无法创建Excel实例,说明network service进程标识的权限不够,如何给他授权在服务器上创建Excel实例呢?

 

(三)  DCOM组件配置

在服务器上操作excel要调用com组件,因此对network service的授权需要配置excel应用程序com组件。

1、 打开Excel应用程序COM组件

方法:在”开始”->”运行”中输入dcomcnfg.exe启动”组件服务”; 依次双击”组件服务”->”计算机”->”我的电脑”->”DCOM配置”; 在”DCOM配置”中找到”Microsoft Excel 应用程序”,在它上面点击右键,然后点击”属性”,弹出”Microsoft Excel 应用程序属性”对话框。如下图所示:

 

2、 配置EXCEL相关COM组件

需要注意的是在笔者的服务器上Excel相关的com组件有2个,分别是:Microsoft Excel应用程序和Microsoft office Excel 2007工作薄,必须同时对这两个com组件做相同的配置,否则仍然会出现无法创建Excel实例的现象。

配置方法:

“常规”选项卡中“身份验证级别”选择“默认”;

“安全”选项卡中,启动和激活”、“访问权限”和“配置权限”全部选择“自定义”,添加“network service”用户并赋予最大权限。

“标识”选项卡中,选择“启动用户”,最后点击确认。

如下图所示:

 

经过这样配置以后,web应用能够成功访问,Excel实例也能够正常创建,COM类工厂错误80070005成功解决

这里我做了一个实验,若“标识”中选择的是“交互式用户”,则web应用能够成功访问,但不能创建Excel实例,此时COM类工厂报告另外一个错误8000401a,如下图所示:

这里有必要说一下“交互式用户”与“启动用户”的区别:

交互式用户

(The interactive user)

这是推荐的选项, 以当前登录到系统的用户确定对象的身份(当前必须有用户登录到系统, 如果用户注销那么对象也会被销毁)
启动用户

(The launching user)

以调用的客户端的用户确定对象的身份, 一个缺点就是这个对象不能再进行远程调用

 

为什么选择“交互式用户”会出现8000401a错误呢? 原因是使用的身份不对,因为此时我使用administrator登录服务器,所以交互式用户就是administrator,如果选择的是“启动用户”,将以调用的客户端的用户确定对象身份,客户端所使用的是“匿名账户IUSR_MACHINENAME”,调用它的是network service进程标识。我们在前面配置DCOM时已经赋予network service相应权限,但没有给administrator授权,那是不是给administrator授权后选择交互式用户就可以创建excel实例了呢?

应此,我按这个思路做了五组实验:

【试验一】

DCOM设置使用“交互式用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”、“访问权限”和“配置权限”全部选择自定义,并且都加入administrator用户(因为当前使用的登录用户是administrator)并赋予最大权限,IIS目录安全性中按默认设置

实验结果:能正常访问web应用,但不能操作excel,报 COM 类工厂错误代码 8000401a

 

【实验二】

DCOM设置使用“交互式用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”、“访问权限”和“配置权限”全部选择自定义,并且都加入administrator用户(因为当前使用的登录用户是administrator)并赋予最大权限,IIS目录安全性中按默认设置,但web.config文件中设置使用administrator身份模拟

实验结果:能正常访问web应用,但不能操作excel,报 COM 类工厂错误代码 8000401a

 

【实验三】

DCOM设置使用“启动用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”、“访问权限”和“配置权限”全部选择自定义,并且都加入administrator用户(因为当前使用的登录用户是administrator)并赋予最大权限,IIS目录安全性中按默认设置,但web.config文件中设置使用administrator身份模拟

实验结果:能正常访问web应用,能正常创建excel实例

 

【实验四】

DCOM设置使用“启动用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”、“访问权限”和“配置权限”全部选择自定义,并且都加入administrator用户(因为当前使用的登录用户是administrator)并赋予最大权限,IIS目录安全性中按默认设置,但web.config文件中设置使用IUSR_MACHINENAME身份模拟

实验结果:能正常访问web应用,但不能操作excel,报 COM 类工厂错误代码 8000401a

 

【实验五】

DCOM设置使用“启动用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”、“访问权限”和“配置权限”全部选择自定义,并且都加入administrator用户(因为当前使用的登录用户是administrator)并赋予最大权限,IIS目录安全性中按默认设置,但web.config文件中不使用身份模拟

实验结果:不能正常访问web应用,也不能操作excel

 

 

上面五个实验说明:在web.config中设置“身份模拟”只对DCOM中的 “启动用户”才有效,且欲操作Excel还必须在DCOM中赋予“身份模拟”的用户最大权限。

为求彻底弄清楚问题的本质,我又做了几组实验:

【试验一】

DCOM设置使用“交互式用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”、“访问权限”和“配置权限”全部选择“默认”,IIS目录安全性中按默认设置,web.config文件中设置使用IUSR_MACHINENAME身份模拟

实验结果:不能正常访问web应用,也不能操作excel

 

【试验二】

DCOM设置使用“交互式用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”、“访问权限”和“配置权限”全部选择自定义,并且都加入network service用户(此时已删除administrator用户)并赋予最大权限,IIS目录安全性中按默认设置,web.config文件中设置使用IUSR_MACHINENAME身份模拟

实验结果:不能正常访问web应用,也不能操作excel

 

【试验三】

DCOM设置使用“启动用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”、“访问权限”和“配置权限”全部选择“默认”,IIS目录安全性中按默认设置,但web.config文件中设置使用IUSR_MACHINENAME身份模拟

实验结果:不能正常访问web应用,也不能操作excel

 

【试验四】

DCOM设置使用“启动用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”、“访问权限”和“配置权限”全部选择自定义,并且都加入network service用户(此时已删除administrator用户)并赋予最大权限,IIS目录安全性中按默认设置, web.config文件不使用身份模拟配置

实验结果:能正常访问web应用,能正常创建excel实例

 

【试验五】

DCOM设置使用“启动用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”、“访问权限”和“配置权限”全部选择自定义,并且都加入network service用户(此时已删除administrator用户)并赋予最大权限,IIS目录安全性中按默认设置,但web.config文件中设置使用身份模拟,形式<identity impersonate=”true” />或者<identity impersonate=”true” userName=”IUSR_ZZUDEV01-VM2″ password=”密码”/>

实验结果:能正常访问web应用,但访问excel文件被拒绝

 

【试验六】

DCOM设置使用“启动用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”中选择自定义并加入administrator用户和network service用户并赋予最大权限, “访问权限”选择自定义并加入network service用户并赋予最大权限, “配置权限”中选择自定义并加入administrator用户和network service用户并赋予最大权限, IIS的“目录安全性”中按默认设置,但web.config文件中设置使用身份模拟,形式<identity impersonate=”true” />或者<identity impersonate=”true” userName=”IUSR_ZZUDEV01-VM2″ password=”密码”/>

实验结果:能正常访问web应用,但访问excel文件被拒绝

 

【试验七】

DCOM设置使用“启动用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”中选择自定义并加入administrator用户和network service用户并赋予最大权限, “访问权限”中选择“使用默认值”,即两个用户都不加, “配置权限”中选择自定义并加入administrator用户和network service用户并赋予最大权限, IIS的“目录安全性”中按默认设置,但web.config文件中设置使用身份模拟,形式<identity impersonate=”true” />或者<identity impersonate=”true” userName=”IUSR_ZZUDEV01-VM2″ password=”密码”/>

实验结果:能正常访问web应用,也能访问excel文件,但无法创建excel实例,报com类工厂错80070005

 

【试验八】

DCOM设置使用“启动用户”后,身份验证级别选择“默认”,安全选项卡中“启动和激活”中选择自定义并加入administrator用户和network service用户并赋予最大权限, “访问权限”中选择“使用默认值”,即两个用户都不加, “配置权限”中选择自定义并加入administrator用户和network service用户并赋予最大权限, IIS的“目录安全性”中按默认设置,但web.config文件中设置使用administrator身份模拟,即<identity impersonate=”true” userName=”administrator” password=”密码”/>

实验结果:能正常访问web应用,能访问excel文件,能正常创建excel实例

 

 

经过以上又进行的八组实验说明,在IIS上部署操作Excel的web应用,需要涉及3方面的权限:第一个是访问web应用的权限,第二个是访问excel的权限,第三个是操作excel的权限。

使用“身份模拟”仅能达到访问web应用的效果,还不能具有第二、第三的权限,要访问、操作Excel必须配置DCOM组件,并选择使用“启动用户”。IIS 6默认使用network service进程标识去调用默认的“匿名账户IUSR_MACHINENAME”来用访问web应用,此时操作Excel的“启动用户”应该是network service进程标识,但注意不能将其具体到IUSR_MACHINENAME和IWAM_MACHINENAME用户,通过实验六可以也看出,在DCOM中的“启动和激活”与“访问权限”均配置添加network service用户,web.config文件中使用具体的IUSR_MACHINENAME身份模拟访问Excel文件被拒绝,说明默认匿名账户只有访问web应用的权限,而不具有访问Excel和操作Excel的权限。

访问web应用,可以使用任何身份,IIS 6默认使用 IUSR_MACHINENAME用户,当然也可以在web.config文件中或者IIS 6的“目录安全性”中设置其他“身份模拟”。IUSR_MACHINENAME用户不具有访问Excel和操作Excel的权限,而只有Network Service具有访问和操作Excel的权限。当DCOM中不配置“访问权限”时,web.config中配置的“身份模拟”就充当两种角色,一种是访问web应用的角色,另一种是访问Excel的角色,若在DCOM中给“身份模拟”的用户授予“启动和激活”的权限,则该用户就具有了第三种角色,操作Excel。

最后,在补充一点:IIS的“目录安全性”web.config文件的“identity impersonate进行“身份模拟”时优先级的问题

根据实验个人判断,web.config的“身份模拟”优先级较高,但IIS“目录安全性”中的身份模拟为必有项(可根据情况选择使用“匿名用户访问”或者“经身份验证的用户访问”)。当两者同时设置了不同的“身份模拟”时,将以web.config中的“身份模拟”访问web应用。

 

网上参考资料:

1、 什么是 Network Service http://homepage.yesky.com/73/2656073.shtml

2、 请教IUSR_MachineName与NetworkService/ASPNET 两个账户之间的关系

http://topic.csdn.net/u/20100927/18/bc789782-3825-4a64-af0b-decbb479174e.html

3、asp操作excel权限不足的问题 http://www.wacxy.com/show.asp?id=1159

Excel部署配置DCOM

mikel阅读(1105)

对 Excel进行编程,实际上就是通过 .Net Framework去调用 Excel的 COM组件,所有要在 Web环境下调用 COM组件的时候,都需要对其进行相应的配置。 很多朋友都反映在 Windows环境下调试正常的程序,一拿到 Web环境中就出错,实际上就是因为缺少了这一步。 下面就详细介绍 DCOM的配置过程。

1、运行“dcomcnfg”,打开 DCOM配置程序。(或者 开始→设置→控制面版→管理工具→组件服务→计算机→我的电脑→DCOM配置)

 

2、在应用程序列表中找到“Microsoft Excel应用程序”,点击“属性”,在2003下面如果没找不到属性,请打SP2补丁。

3、将 “常规”选项卡中的 “身份验证级别”设为 “无”。

4、选中 “安全性”选项卡中的 “使用自定义配置权限”,点击 “编辑”。

5、在打开的对话框中添加 “Internet来宾用户”(通常是IUSR_机器名) ,访问类型设为“完全控制”。

6、将 “身份标识”选项卡中的用户设为 “交互式用户”。

7、点击“应用”之后,关闭属性页和 DCOM配置程序。配置完成

 

Excle设置参考

http://www.cnblogs.com/sjjsky/archive/2008/03/26/1123002.html

自定义COM+组件,在启动时报错“错误代码 8000401A – 因为配置类型不正确,系统无法开始服务器进程。请检查用户名和密码。”

解决办法:

运行dcomcnfg打开组件服务,
依次展开”组件服务”->”计算机”->”我的电脑”->”COM+应用程序”
找到对应的应用程序
右键打开属性对话框,点击”标识”选项卡,
点”下列用户”,把管理员(Administrator)的用户和密码(登陆服务器的密码)正确填写进去。但一旦重新装系统或者密码变化后需要重新在此处设置密码。

有些同学按照上面全做了一遍还是不行,要注意 可能是你的默认访问权限和默认启动权限有问题,要注意给足几个用户的权限。总之是权限问题。

[转载]检索 COM 类工厂中 CLSID 为 {} 的组件时失败,原因是出现以下错误: 80070005 - Sue_娜 - 博客园

mikel阅读(947)

来源: [转载]检索 COM 类工厂中 CLSID 为 {} 的组件时失败,原因是出现以下错误: 80070005 – Sue_娜 – 博客园

我们给当地公安局做了个系统,在本地测试全部通过的,结果跑到客户那一个开发中一直没遇见的问题出现了:检索 COM工厂CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。跟踪了一下,结果是将记录导出为Excel表时Excel的COM组件出错,但在VS2005里面却没有任何问题,因此得出结论,肯定是权限问题,查了下资料,问题解决
具体解决方法如下:
1:在服务器上安装office的Excel软件.
2:在”开始”->”运行”中输入dcomcnfg.exe启动”组件服务”
3:依次双击”组件服务”->”计算机“->”我的电脑”->”DCOM配置”
4:在”DCOM配置”中找到”Microsoft Excel 应用程序”,在它上面点击右键,然后点击”属性”,弹出”Microsoft Excel 应
用程序属性”对话框
5:点击”标识”标签,选择”交互式用户”
6:点击”安全”标签,在”启动和激活权限”上点击”自定义”,然后点击对应的”编辑”按钮,在弹出的”安全性”对话框中填加
一个”NETWORK SERVICE”用户(注意要选择本计算机名),并给它赋予”本地启动”和”本地激活”权限.
7:依然是”安全”标签,在”访问权限”上点击”自定义”,然后点击”编辑”,在弹出的”安全性”对话框中也填加一个”NETWORK
SERVICE”用户,然后赋予”本地访问”权限.
这样,我们便配置好了相应的Excel的DCOM权限.
注意:这是在WIN2003上配置的,在2000,xp上,NETWORK SERVICE用户改为ASP.net用户。
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005
在CSDN上总是有网友问这个问题,自己也遇到过,因些写出来供参考:
症状:
oWordApplic = New Word.Application
当程序运行到这句时出现下面的错误:
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
oWordApplic = New Word.Application
当程序运行到这句时出现下面的错误:
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
解决方法一:
控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCom配置-》找到Microsoft Word文档
之后
单击属性打开此应用程序的属性对话框。
2. 单击标识选项卡,然后选择交互式用户。
3.单击”安全”选项卡,分别在”启动和激活权限”和”访问权限”组中选中”自定义”,然后
自定义->编辑->添加ASP.NET账户和IUSER_计算机名

* 这些帐户仅在计算机上安装有 IIS 的情况下才存在。
13. 确保允许每个用户访问,然后单击确定。
14. 单击确定关闭 DCOMCNFG。

解决方法二:
如果上述方法不能解决问题,就应该是权限问题,请尝试用下面的方法:
在web.config中使用身份模拟,在<system.web>节中加入  <identity impersonate=”true” userName=”你的用户名” password=”密码”/>
</system.web>

备注:
说白了,就是本地编译的DCOM的组件appid和服务器上的DCOM组件的appid不一致,导致上传到服务器报错,注册表修改appid的方法应该可行,但是试了还是不行,解决方法二过去可以用,现在却不能用了,因为我本地的appid编译后不一致,还有个笨方法就是将源码传到服务器上本地编译发布肯定就一致了。sh

利用Tor(The Onion Router,洋葱路由)访问Sourceforge

mikel阅读(1551)

今天看到 eagletSourceForge 的中文替代网站发现现在不能访问sourceforge的朋友不在少数.而且维护这样子一个镜像站点工作量相当艰巨,并且意义不是很大,在此分享下自己的代理方案.

 

在回复中有人提出使用wj,确实wj是个不错的工具,不过相对来说,还有比较多的弊端:

  1. wj本身是被封的站点和软件,xx信息太多,而且下载和更新都比较麻烦。
  2. wj虽然说进行了高强度的加密,号称超过银行标准,不过新版本出来之后经常过一阶段就被封禁。
  3. wj的代理速度比较慢。

然而除此之外,我们难道没有合理合法的代理工具嘛?有的,这就是我接下来要介绍的方案:Tor(The Onion Router,洋葱路由器).

 

Tor是一种点对点的代理软件,依靠网络上的众多电脑运行的tor服务来提供代理(全球的Tor网络是一个分布式的、匿名的网 络)。tor代理网络是自动连接并随机安排访问链路的,这样就没有了固定的代理服务器,也不需要去费劲寻找代理服务器地址了。而且Tor的代理一般在 2-5层左右,加密程度也比较高。

Tor的简明工作原理如下(具体可以查看http://www.torproject.org/overview.html.zh-cn,需要使用Tor后才可访问^_^):

首先,Tor从目录服务器获取一个Tor的节点列表,加入到全球的Tor网络中.

 

如需访问网络上的服务器,Tor则会随机的安排一条访问路线,通过几层的加密传输,然后在某个出口出来访问目标服务器。

 

如需访问另一服务器,Tor则会安排另一条随机的线路来完成访问。

 

以前使用Tor是比较麻烦的,因为其安装步骤相当繁琐,不过现在已经不需要了,有一个叫Vidalia Bundle的软件,提供Tor的整合安装方案,其中包括4个组件

  1. Tor的核心组件
  2. Tor的图形控制界面
  3. 代理转换软件Privoxy,把Tor提供的socks代理转换为http代理
  4. Torbutton,FireFox的插件,类似wj的Firefox插件,用来开关Tor功能

 

当然如果你的软件没有代理功能,但是你又想通过Tor进行网络访问,你就需要一个老牌的代理封装软件:SocksCap32,该软件可以为任意软件提供网络访问的代理封装,不管被封装的软件自身带不带代理功能。

 

 

当Tor运转之后,就可以访问任意网站了,不过有几点要注意的:

  1. 不要使用Tor进行大流量下载,特别是P2P下载,因为这样显得太不厚道了,Tor的中继服务器都是自愿者搭建的
  2. 使用Tor,可能会导致你访问站点时候cookie丢失,需要重新登录,我想可能是因为Tor中转之后,每次在不同的出口点进行访问,导致cookie丢失,具体原因尚不是非常清楚.

 

 

更加详细的内容请访问一下站点:

  1. http://www.tcno.net/doc/tor
  2. http://vidalia-project.net
  3. http://www.torproject.org/overview.html.zh-cn