2009-12-04 27 views
5

Tôi có một ứng dụng ASP.NET cho phép người dùng xuất sự vắng mặt của nhân viên mỗi tháng vào Microsoft Excel. Ứng dụng hiện đang tạo ra ngoại lệ sauASP.NET Không thể tạo thành phần ActiveX

Ngoại lệ: Không thể tạo thành phần ActiveX.

với theo dõi ngăn xếp sau

Hệ thống.Exception: Không thể tạo thành phần ActiveX. tại Microsoft.VisualBasic.Interaction.CreateObject (Chuỗi ProgId, String ServerName) tại HR.ManagerSummary.ExportToExcel() trong H: \ Development \ pagec \ Visual Studio 2005 \ Projects \ HR \ ysnet2 \ Time \ ManagerSummary.aspx.vb : dòng 935 tại HR.ManagerSummary.btnExcel_Click (Người gửi đối tượng, EventArgs e) trong H: \ Development \ pagec \ Visual Studio 2005 \ Projects \ HR \ ysnet2 \ Time \ ManagerSummary.aspx.vb: dòng 891 tại System.Web .UI.WebControls.Button.OnClick (EventArgs e) tại System.Web.UI.WebControls.Button.RaisePostBackEvent (String eventArgument) tại System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (String eventArgument) tại System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler sourceControl, String eventArgument) tại System.Web. UI.Page.RaisePostBackEvent (NameValueCollection POSTDATA) tại System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Mã này thất bại tại dòng CreateObject.

'Create the Excel object 
    Dim objXL As Object = CreateObject("Excel.Application") ' New Microsoft.Office.Interop.Excel.Application 
    Dim objWB As Object = objXL.Workbooks.Add 
    Dim objWS As Object = objWB.Worksheets(1) 

Tôi đã đặt quyền trong Cấu hình DCOM cho ứng dụng Microsoft Excel cho tài khoản IUSR_ nhưng chưa giải quyết được vấn đề. Bất kỳ ý tưởng nào cũng sẽ được đánh giá cao.

Cheers

James

Trả lời

5

Tiếp theo di chuyển của các ứng dụng ASP.NET của chúng tôi để phần cứng mới, tôi điều tra thêm vấn đề này và đã đưa ra một giải pháp.

Để giải quyết vấn đề, mở "Hợp phần Dịch vụ" từ Administrative Tools và điều hướng như sau:

  • Component Services -> Máy tính -> My Computer -> DCOM Config -> Microsoft Excel Application
  • Ngay nhấp vào Microsoft Excel ứng dụng -> Properties -> tab
  • an
  • Nhấn Customize cho "Launch và kích hoạt Quyền" -> Edit -> Add
  • Enter "NETWORK SERVICE", bấm vào nút "Check Names", nhấp OK
  • .210
  • Allow "Launch địa phương" và "Hoạt địa phương" cho "NETWORK SERVICE" sau đó nhấn OK
  • Chọn Customize cho "Truy cập Permissions" -> Edit -> Add
  • Enter "NETWORK SERVICE", bấm vào nút "Check Names" , nhấn OK
  • Allow "Truy cập địa phương" cho cho "NETWORK SERVICE", sau đó nhấn OK
  • bấm OK

các ứng dụng ASP.NET bây giờ có thể tạo thành một bảng tính Microsoft Excel chứa dữ liệu xuất khẩu.

0

sẽ cho phép bạn lưu xls và xlsx workbook trực tiếp đến một luồng phản ứng với IWorkbook.SaveToStream. Đó là tất cả các mã C# được quản lý an toàn nên không cần chạy bất cứ thứ gì với tư cách quản trị viên và bạn sẽ không gặp phải các vấn đề mà Excel COM Interop mang lại trên một máy chủ ASP.NET.

Bạn có thể xem một số mẫu báo cáo Excel Excel đơn giản (C# và VB) sử dụng SpreadsheetGear here và tải bản dùng thử miễn phí here nếu bạn muốn tự mình thử.

Disclaimer: Tôi sở hữu SpreadsheetGear LLC

Các vấn đề liên quan