SSRS邮件错误:“文件名,目录名称或卷标语法不正确”

时间:2009-10-02 01:40:00

标签: sql-server-2008 reporting-services smtp

我正在尝试配置SQL Server Reporting Services以发送电子邮件。环境是:

  • Windows Server 2008 Enterprise
  • SQL Server 2008 Enterprise
  • 以纯模式运行的SSRS
  • 通过IIS7配置的SMTP服务器,配置为受限制的中继

用户配置邮件订阅后,当触发状态更改为以下错误时:

  

发送邮件失败:文件名,   目录名称或卷标语法   是不正确的。邮件不会被重新发送。

这是rsreportserver.config的相关部分:

<Extension Name="Report Server Email" Type="Microsoft.ReportingServices.EmailDeliveryProvider.EmailProvider,ReportingServicesEmailDeliveryProvider">
    <MaxRetries>3</MaxRetries>
    <SecondsBeforeRetry>900</SecondsBeforeRetry>
    <Configuration>
        <RSEmailDPConfiguration>
            <SMTPServer>
            </SMTPServer>
            <SMTPServerPort>
            </SMTPServerPort>
            <SMTPAccountName>
            </SMTPAccountName>
            <SMTPConnectionTimeout>
            </SMTPConnectionTimeout>
            <SMTPServerPickupDirectory>
                C:\inetpub\mailroot\Pickup
            </SMTPServerPickupDirectory>
            <SMTPUseSSL>
            </SMTPUseSSL>
            <SendUsing>
                1
            </SendUsing>
            <SMTPAuthenticate>
            </SMTPAuthenticate>
            <From>
                ssrsUserAccount@domain.com
            </From>
            <EmbeddedRenderFormats>
                <RenderingExtension>MHTML</RenderingExtension>
            </EmbeddedRenderFormats>
            <PrivilegedUserRenderFormats>
            </PrivilegedUserRenderFormats>
            <ExcludedRenderFormats>
                <RenderingExtension>HTMLOWC</RenderingExtension>
                <RenderingExtension>NULL</RenderingExtension>
                <RenderingExtension>RGDI</RenderingExtension>
            </ExcludedRenderFormats>
            <SendEmailToUserAlias>True</SendEmailToUserAlias>
            <DefaultHostName>
            </DefaultHostName>
            <PermittedHosts>
            </PermittedHosts>
        </RSEmailDPConfiguration>
    </Configuration>
</Extension>

我已经验证了运行SSRS的帐户对SMTP提取目录(C:\ inetpub \ mailroot \ Pickup)及其对等方具有完全控制权限。

ReportServerService日志没有任何显示内容。

1 个答案:

答案 0 :(得分:1)

问题是SMPT服务器一检测到就开始解析EML文件。这是完全公平的,但问题是SSRS并不总是写完文件 - 竞争条件。

解决方案是指示SSRS写入临时目录,然后将EML文件移动到Pickup。