
而这个格式中要求相应的帐户具有修改的权限 这样access才能够进行更新
方法:
如果配置站点的时候,分区是NTFS格式的情况下,会遇到80004005的数据库或对象为只读错误,如:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC Microsoft Access Driver] 不能更新。数据库或对象为只读。
造成这个原因的问题就是站点目录的访问权限问题,因为在使用Access数据库的时候,要在同目录生成一个.ldb文件,如果此目录没有写权限或者Access数据库本身没有写的权限,那么就会报这个错误。由于通过浏览器访问网站大都使用Internet匿名访问,我们只需要在数据库的目录权限里添加上“IUSR_计算机名”用户就可以了,分给它“写入”权限。我发现一些文章说让加入EveryOne用户,并给“写入”权限,这个太危险了。原则上是此目录加的可以写入用户就是在IIS中配置的时候加的Internet匿名访问用户,一般默认为“IUSR_计算机名”,不过如果是虚拟主机就要自己看看了。
*** 作方式就是:
鼠标右键点击数据库所在目录(或者它上级目录,但是注意要能够继承权限)-〉选择“共享和安全”-〉选择“安全”选项卡-〉点击“添加”按钮-〉点击“高级...”按钮-〉点击“立即查找(N)”按钮-〉找到前缀为“IUSR_”的用户名(格式为IUSR_计算机名)-〉选中此用户,点击确定-〉这样这个用户就被加进来了-〉在“Internet来宾帐户”的权限框中,除了默认的还要选中“写入权限”-〉“应用”或者“确定”即可。
提示:如果是WinXP系统下找不到“共享和安全”选项,需要先进行一下设置:“工具”-〉“文件夹选项”-〉“查看”-〉“默认使用简单共享(推荐)”,把这个选项去掉,再在文件夹上右键点击,就会出现安全这个选项。
Server Application ErrorThe server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance.
访问IIS客户端出现如上错信息提示,
在网上查了查解决方案如下:
1。右键我的电脑--管理--本地用户和组,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。
2。开始--运行--打cmd,
然后cd D:InetpubAdminscripts(我的系统在D盘),
然后cscript.exe adsutil.vbs set w3svc/wamuserpass 你的密码,
然后cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你的密码
看一下,行了没有?如果还不行,那么
cscript.exe synciwam.vbs -v,
然后iisreset。
据说就可以了,但是到最后一部提示8004e00f的错误,此错误是MSDTC服务不正常造成的,解决方法:
首先进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,结果报错“COM+ 无法与 Microsoft 分布式事务协调程序交谈”,无法查看里面的对象。
2、进入事件查看器,发现msdtc服务没有正常启动。
3、删除注册表中的键:
• HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSDTC
• HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSDTC
• HKEY_CLASSES_ROOTCID
4、停止MSDTC服务:net stop msdtc
5、卸载MSDTC服务:msdtc -uninstall
6、重新安装MSDTC服务:msdtc -install
7、确认在事件查看器中msdtc服务已经正常启动[这步很关键,如果没有,重新启动下电脑看看]
8、重新设置IIS的IWAM账号密码。[在计算机管理中的用户管理里]
9、同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:c:inetputadminscripts>adsutil set w3svc/wamuserpass "yourpassword"
10、同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:c:inetputadminscripts>cscript synciwam.vbs -v
到这部分网上大部分都说可以了,但是我这里虽然没有8004e00f的错误提示了,但是访问页面Server Application Error 错误依旧,最后终于找到了解决方法如下:
解决办法:
[1]:
检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动,
如果正常的话请你跳过此步骤;如果出错,无法正常启动,请在开始菜单的运行中 运行:msdtc -resetlog 以创建日志文件。重起机器,检查IIS是否可以正常使用,若不行继续。
[2]:
在CMD下执行以下命令:
cd %windir%\system32\inetsrv
rundll32 wamreg.dll, CreateIISPackage
regsvr32 asptxn.dll
(到这里我就可以用了,不用重启的)
首先这样的 *** 作,默认权限是不允许的。你需要给IIS进程用户(IUSR_计算机名,IWAM_计算机名)高的权限——添加到远程计算机的管理员本地组,或添加到域管理员全局组。
清空网站日志没有用,你检查下程序里连接是不是有未释放的。SQLSERVER要做缓存处理。
========================================================
我的电脑-右击-管理-系统工具-本地用户和组-用户
找到该用户-属性-隶属-添加-高级-立即查找……后面自己看看就知道的。
命令行的方式如楼下所说:
net user localgroup administrators IUSR_计算机名 /add
net user localgroup administrators IWAM_计算机名 /add
"计算机名"需要改成你实际的计算机名呀——“我的电脑”-"属性" 可以看到计算机名,比如 IUSR_zhangsan IWAM_zhangsan
给IIS进程用户权限是不应该的,这样做的话,你已经给了WEB用户管理员权限,使得你的服务器相当危险.
并不是能实现就可以,更加重要的是应不应该实现.
首先随意重新启动IIS是错误的,需要找到根本原因,
其次,即使有某需要要调用命令行,应该通过其他方法,比如用服务来做,服务和WEB程序共用数据库来发送和接受命令,这样不用给予IIS用户不应该的权限.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)