2011-06-06 63 views
1

我使用ASP.NET代码将PPT转换为图像。当我直接运行我的代码(不包含IIS 7.0)时,它的运行非常完美。但是,当我配置我的应用到IIS 7.0,然后运行它给我下面的错误应用:使用IIS 7.0的COM +对象

Retrieving the COM class factory for component with CLSID {91493441-5A91-11CF-8700-00AA0060263B} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)). 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {91493441-5A91-11CF-8700-00AA0060263B} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)). 

ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6 and IIS 7, and the configured application pool identity on IIS 7.5) that is used if the application is not impersonating. If the application is impersonating via <identity impersonate="true"/>, the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user. 

To grant ASP.NET access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access. 

Source Error: 


Line 12:   ' Create an instance of PowerPoint, make it visible, 
Line 13:   ' and open Pres1.ppt. 
Line 14:   Dim oPP As New PowerPoint.ApplicationClass() 
Line 15:   oPP.Visible = MsoTriState.msoTrue 
Line 16:   Dim oPresSet As PowerPoint.Presentations = oPP.Presentations 


Source File: G:\Projects\PPTTest\Default.aspx.vb Line: 14 

Stack Trace: 


[UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {91493441-5A91-11CF-8700-00AA0060263B} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).] 
    _Default.PPT() in G:\Projects\PPTTest\Default.aspx.vb:14 
    _Default.Page_Load(Object sender, EventArgs e) in G:\Projects\PPTTest\Default.aspx.vb:8 
    System.Web.UI.Control.OnLoad(EventArgs e) +91 
    System.Web.UI.Control.LoadRecursive() +74 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207 

请人帮我摆脱这种局面。我正在使用Windows Server 2008,带有ASP.NET Framework 4.0的Visual Studio 2010,使用基于表单的身份验证。

谢谢

+0

嗯......任何人都可以解决这个问题,或者如果不理解问题然后讨论它。 – Zeeshan 2011-06-10 06:11:43

回答

0

它已被赋予权限为“此用户”解决了,然后给你登录在COM +设置凭据。