2010-11-20 34 views
5

Tôi đã phát triển một ứng dụng máy chủ sử dụng tự động hóa Excel 2007 COM để chuyển đổi một số tệp xls. Nó được bắt đầu như một dịch vụ trên một cá thể Windows Datacenter, chạy dưới người dùng riêng của nó, và tôi đã phải thay đổi các thiết lập bảo mật DCOM ("khởi động như người dùng tương tác") để làm cho nó hoạt động.Tự động hóa COM Excel ngừng hoạt động khi người dùng đăng xuất

Vấn đề là, khi tôi đăng xuất (qua RDP), nó ngừng hoạt động. Tôi đăng nhập, nó hoạt động trở lại.

Có ai có cùng sự cố không? Tôi rất vui vì bất kỳ sự trợ giúp nào vào thời điểm này.

Trả lời

7

Ok, vì vậy tôi không thể có được Excel để hoạt động mà không có một người dùng tương tác, không có số tiền của thủ thuật DCOMCNFG sẽ làm gì. Vì vậy, tôi chỉ cần cấu hình autologin cho người dùng dịch vụ đang chạy dưới (xem http://support.microsoft.com/kb/315231 để được hướng dẫn).

Điều này có ảnh hưởng đến việc khởi động máy chủ, người dùng đó sẽ đăng nhập dưới dạng phiên điều khiển tương tác. Không giống như các phiên RDP, điều này là vĩnh viễn và làm cho Excel hạnh phúc.

gợi ý khác cho các linh hồn người nghèo, người phải làm một cái gì đó tương tự:

  • tạo thư mục C: \ Windows \ System32 [hoặc SysWOW64] \ config \ systemprofile \ Desktop
  • đảm bảo một máy in mặc định được cấu hình cho người dùng dịch vụ chạy dưới
  • thay đổi cài đặt DCOMCNFG (mmc -32, thêm "dịch vụ thành phần") của Excel để chạy bằng tài khoản tương tác
  • thay đổi mặc định DCOM toàn cầu để cho phép truy cập cục bộ, khởi chạy cục bộ và cục bộ kích hoạt cho người dùng servic e chạy dưới

Chúc may mắn!

+0

Bạn có nghĩa là thực hiện "Các gợi ý khác" mà bạn đề cập đến mô phỏng có người dùng tương tác luôn bật không? – mateolargo

+0

Sử dụng đăng nhập tự động là một nguy cơ bảo mật. Làm thế nào bạn có thể bảo vệ máy chủ của bạn theo cách này? –

2

Có một điều được gọi là Excel Services mà là nghĩa vụ phải làm cho nó có thể chạy Excel như một dịch vụ sử dụng SharePoint, mà sẽ cho phép nó chạy tự động với ai đăng nhập.

+0

Xin chào Joel, cảm ơn bạn đã trả lời! :) Tôi đã thực sự suy nghĩ của bạn khi tôi gỡ lỗi này, nhận thấy rằng Excel là khó khăn hơn để tự động hóa hơn Word hoặc Powerpoint, đòi hỏi một người dùng tương tác đăng nhập để hoạt động. Bạn có thể biết lý do tại sao, đã làm việc trên internals. Tôi biết về các dịch vụ MS Office do Sharepoint cung cấp, nhưng thật không may, tôi đang phát triển dịch vụ này cho một đối thủ cạnh tranh trực tiếp của SharePoint.^_^Tôi sẽ đăng giải pháp mà tôi đã tìm thấy bên dưới. Chúc mừng! –

1

Tôi đã có vấn đề này, và tôi phát hiện ra rằng câu trả lời là thực sự trong DCOM Configuration.

tôi đã làm như sau để giải quyết vấn đề:

  1. Mở Excel DCOM Thuộc tính
  2. Go vào tab Identity
  3. Chọn This User
  4. Nhập thông tin đăng nhập của người có quyền truy cập vào Excel

Bạn có thể cần phải chuyển đến tab Security và đảm bảo người dùng bạn đã chỉ định ở trên có Quyền phù hợp.

Sau khi thực hiện việc này, tôi có thể Đăng xuất khỏi Máy chủ trong khi vẫn sử dụng thư viện Tự động hóa Excel COM.

0

Nếu tài khoản mà đang chạy EXCEL là quản trị viên thì điều này sẽ làm việc:

Đối với 64-bit (x64), tạo thư mục này: C: \ Windows \ SysWOW64 \ config \ systemprofile \ Desktop Đối với 32 bit (x86), tạo thư mục này: C: \ Windows \ System32 \ config \ systemprofile \ Desktop Nếu không để giải quyết vấn đề này theo các bước sau:

  1. Đăng nhập vào máy chủ của bạn như là một quản trị viên
  2. đến " Bắt đầu "->" Chạy "và nhập" MMC comexp.msc/32 "
  3. Chuyển đến các thuộc tính của Ứng dụng Microsoft Excel, trong Nhận dạng, thay đổi nó thành Người dùng tương tác từ Người dùng khởi chạy (được đặt theo mặc định).
  4. Chuyển đến các thuộc tính của Microsoft Office Excel 2007 Sổ làm việc, dưới Nhận dạng, thay đổi nó thành Người dùng tương tác từ Người dùng khởi chạy (được đặt theo mặc định).
  5. Đến tab Security for Microsoft Excel Ứng dụng và chọn Customize cho "Launch và kích hoạt Permissions" và thêm tài khoản (theo đó EXCEL đang chạy) cho nó và cho nó "ra mắt địa phương" và "Hoạt địa phương" phép
  6. tới tab Security cho Workbook Microsoft Office Excel 2007 và chọn Customize cho "Truy cập Permissions" và thêm tài khoản (theo đó EXCEL đang chạy) cho nó và cho nó "Truy cập địa phương" phép
0

server side:

A) Chuyển "Người dùng tương tác" thành "Người dùng này".

B) "Thành viên này" chỉ hoạt động sau khi tạo các thư mục này:

  • C: \ Windows \ SysWOW64 \ config \ systemprofile \ Desktop
  • C: \ Windows \ System32 \ config \ systemprofile \ Desktop

C) Chờ cho nó ... Bước B) gây nên Windows để tự động tạo ra:

  • C: \ Users \ Default \ Desktop

Lưu ý định nghĩa của "Người dùng tương tác" được xem là bất kỳ người dùng đăng nhập đang hoạt động nào vào máy chủ. Do đó không thể khởi chạy MS Office khi không có người dùng nào đang hoạt động trên máy chủ.

I.e, đối với tôi, giải pháp là sự kết hợp của các giải pháp đã được đề xuất. Tôi đã sử dụng Office 2013 (x86) trên Win 2012R2. Vấn đề của tôi là thay vì với Word (để sử dụng WordToPDF).

Details for Bước B:

  • Đăng nhập vào máy chủ> Bắt đầu> chạy dcomcnfg.exe (để khởi động Component Services)> Console Root> Các dịch vụ Component> Máy tính> My Computer> DCOM Config ...
  • Cuộn đến "Tài liệu Microsoft Word 97 - 2003" hoặc "Ứng dụng Microsoft Excel" (... nghĩa là, bất kỳ điều gì MS Office bạn cần khởi chạy) ...
  • Nhấp chuột phải vào nó và chọn "thuộc tính"> Thẻ danh tính> Chọn "Người dùng này"> nhập bằng chứng xác thực cho một số người dùng có quyền truy cập vào MS Office trên máy chủ. (Tôi đã sử dụng một người dùng với quyền quản trị viên.)

Details for Bước C:

  • Sự chờ đợi thay đổi từ 5 phút đến qua đêm. Theo tùy chọn, hãy tạo thư mục này theo cách thủ công (nếu thư mục không tồn tại và bạn đang vội vàng hoàn tất kiểm tra).
Các vấn đề liên quan