我正在对一个用经典asp编写的网站进行修改。
我的系统是64位Windows 7。
在将网站设置为在IIS6上运行的经典asp之后,我已经能够让它运行起来。
当它试图执行下面的代码时,我得到了权限被拒绝的错误:
from1 = "Kevin@company.com"
to1 = "staff1@company.com"
to2 = "staff2@company.net"
to3 = "staff3@client.com"
strTo = to1
If Len(strTo) > 0 Then
If Len(to2) > 0 Then
strTo = strTo & ";" & to2
End If
Else
strTo = to2
End If
If Len(strTo) > 0 Then
If Len(to3) > 0 Then
strTo = strTo & ";" & to3
End If
Else
strTo = to3
End If
body = reqApprName & "<br />" & reqApprPhone & "<br />" & reqApprEmail & "<br />Loan Number: "_
& loannum & "<br /><br />Please do not reply back to this email. The Vendor has provided the following "_
& "comment associated with this order.<br /><br />" & reqUndueInfluenceComment
Set ObjMail = CreateObject("CDONTS.Newmail")
ObjMail.From = from1
ObjMail.To = strTo
ObjMail.Subject = "Appraisal Order "&OrderNum&" by Vendor"
ObjMail.BodyFormat = 0
ObjMail.MailFormat = 0
ObjMail.Body = body
ObjMail.Send
Set ObjMail = Nothing我很困惑,因为我以前从来没有遇到过CDONTS的问题。话又说回来,我从来没有尝试过在Windows7的64位机器上使用它,使用的是32位的经典asp。
有谁有什么想法吗?
谢谢大家。
PS:我在为CDONTS.NewMail创建对象时遇到错误
发布于 2014-05-16 04:23:32
当您尝试发送消息时,可能会收到以下错误消息:
Microsoft VBScript runtime error '800a0046' Permission denied当IIS中的应用程序在进程外运行时,就会出现此问题。
发生此问题时,进程的用户上下文将从有权访问IIS元数据库的IUSR_MachineName帐户更改为无权访问IIS元数据库的IWAM_MachineName帐户。
通常,此错误有两个原因。
运行.asp页或运行脚本的用户没有分拣目录的权限。
通常,分拣目录位于以下位置:
对于仅运行IIS的计算机: C:\Inetpub\Mailroot\Pickup
对于运行Microsoft Exchange 5.5的计算机: Exchsrvr\Mailroot\Pickup
对于运行Exchange 2000的计算机:\Program files\Exchsrvr\Mailroot\Vsi #\Pickup
解决方案
The user under whom the .asp page is running or the script is running must have Modify (Change) permission to the Pickup directory so that the NewMail object can create the .eml file.
该页正在其自己的内存空间中运行,并被拒绝访问IIS元数据库。要验证这一点,请执行以下步骤:
单击“开始”,单击“运行”,键入Inetmgr,然后单击“确定”。
右键单击包含页的根目录或虚拟目录,然后单击“属性”。
如果在步骤2中右键单击了根目录,请单击主目录选项卡。
如果在步骤2中右键单击了虚拟目录,请单击虚拟目录选项卡。
在运行Windows NT的计算机上,确定是否选中了“在单独的内存空间中运行”复选框。
如果选中了Run in separate memory space复选框,请单击清除该复选框。或者,在SMTP服务的“属性”菜单上,单击“操作员”选项卡,然后添加IWAM_MachineName帐户。
在运行Windows 2000的计算机上,确定“应用程序保护”设置是否设置为“高(独立)”。如果“应用程序保护”设置为“高(隔离)”,请将“应用程序保护”设置为“中(池化)”。或者,在SMTP服务的“属性”菜单上,单击“安全”选项卡,然后将IWAM_MachineName帐户添加到Operators帐户。
Support.Microsoft.com
https://stackoverflow.com/questions/23684353
复制相似问题