none
C#程序在服务器上读取MS Office Outlook的发件箱中的邮件时发生错误 RRS feed

  • 问题

  • 求助!!

    C#程序在服务器上读取MS Office Outlook的发件箱中的邮件时发生错误 
    Microsoft.Office.Interop.Outlook.Application outLookApp = new Microsoft.Office.Interop.Outlook.Application();

    检索 COM 类工厂中 CLSID 为 {0006F03A-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

    异常详细信息: System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {0006F03A-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。 

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

    要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。


    小弟我在网上找了都是对于excel,word的解决方法,excel,word等是在服务器的组件服务中设置组件属性的安全权限和标识,不过对于outlook是对那个组件进行设置,我的服务器是server 2003 装的是office2003,只有outlook office finder和outlook邮件附件二个和outlook有关的组件

    请各位高手指点,谢谢
    2010年5月26日 14:09

答案

  • 首先用filemon看看有没有文件被拒绝访问(默认IIS用户不能访问program files的),再看DCOM的安全设置

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Qu zongwen 2010年5月27日 2:20
    2010年5月26日 19:11
    版主

全部回复

  • 首先用filemon看看有没有文件被拒绝访问(默认IIS用户不能访问program files的),再看DCOM的安全设置

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Qu zongwen 2010年5月27日 2:20
    2010年5月26日 19:11
    版主
  • 感谢Sheng Jiang 蒋晟 ,

    DCOM配置里只有excel和word的组件,关于outlook的只有outlook office finder和outlook邮件附件二个组件,我在本地iis上运行的程序是可以读取本地outlook中的邮件的,可是在服务器上的程序运行到Microsoft.Office.Interop.Outlook.Application outLookApp = new Microsoft.Office.Interop.Outlook.Application();这句时就报错了,可能还是权限的问题,就是不知道在哪里设???

    2010年5月27日 2:32