我有一个ASP.NET应用程序在我的Windows XP开发机器上运行正常,但在部署到带有IIS7的Windows 2008时无法运行。该应用程序使用SmtpDeliveryMethod.PickupDirectoryFromIis,并在我尝试从IIS7上的应用程序发送电子邮件时出错(带有“无法获取iis提取目录”消息的SmtpException)。我在开发机器和服务器上使用相同的设置。
任何帮助都会非常感激......
答案 0 :(得分:4)
原来这是一个权限问题但不是拾取目录,实际上是配置数据库(SMTP设置仍然保存在IIS7的配置数据库中)
我在IIS.net论坛网站上遇到了这个论坛帖子Cannot get IIS pickup directory. NEED HELP,然后按照帖子中提到的内容,下载并安装了配置数据库资源管理器工具(你必须下载IIS6资源工具包才能获得它)然后在LS,SMTPSvc和SMTPSvc / 1键上为我的自定义用户(如其中一个帖子中所示)提供了读取权限,并且它有效。由于某些未知原因,如果您只授予smptSvc密钥的权限,则它不起作用。
答案 1 :(得分:-1)
我认为问题可能在于信任级别。
因为在中等信任中,您只能写入应用程序的目录(或下面的任何目录)。如果您指定的PickUp文件夹不在您的应用程序目录 AND 中,则应用程序在中等信任(不完全信任)下运行,则您无法写入PickUp文件夹。
答案 2 :(得分:-2)
您可以在不使用取件目录的情况下直接发送到SMTP服务器。
答案 3 :(得分:-2)
您需要先指定分拣目录。这是关于如何做的guide。
将XP上的IIS 5.1与Windows Server 2008(IIS 7)上的IIS 5.1进行比较也不是一个好主意,因为除了明显的版本差异外,很多功能都发生了很大的变化。特别是smtp服务器,例如Vista中没有这样的功能。