2009-07-27 13 views
8

Tôi cố gắng để chỉnh sửa một tài liệu từ từ VB.NET sử dụng cho hầu hết các phần mã này:Lấy nhà máy lớp COM cho lỗi phần trong khi tạo tài liệu từ

Làm thế nào để tự động Word từ Visual Basic.NET để tạo một tài liệu mới http://support.microsoft.com/kb/316383

Nó hoạt động tốt trên máy tính của tôi nhưng khi tôi xuất bản lên máy chủ tôi nhận được lỗi sau.

Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.

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 {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.

Các lỗi thực tế sẽ xảy ra khi tôi cố gắng để chỉ cần tạo một đối tượng ứng dụng từ

Dim oWord As New Word.Application 

Sử dụng Visual Studio 2008 và VB.NET 3.5. Tôi đã tham chiếu đến "Thư viện đối tượng Microsoft Word 10.0" và tôi thấy tệp Interop.Word.dll trong thư mục bin.

Sử dụng MS Office 2003 trên máy tính phát triển và Windows Server 2003

Tuy khá mới để NET và không có nhiều kiến ​​thức về máy chủ cửa sổ, nhưng "UnauthorizedAccessException" Nghe có vẻ như một vấn đề được phép. Tôi tự hỏi nếu ai đó có thể chỉ cho tôi đúng hướng về những gì tôi có thể cần phải làm để cung cấp cho ứng dụng nhỏ của tôi truy cập để sử dụng từ.

Trả lời

7

Chắc chắn nó giống như vấn đề về quyền. Bạn đang chạy mã của bạn trong một dịch vụ cửa sổ? Dịch vụ này thường chạy dưới dạng Hệ thống cục bộ, có thể không có quyền truy cập vào mô hình đối tượng Word. Ngoài ra, nếu từ đã chạy bằng cách sử dụng thông tin đăng nhập của một số người dùng khác thì chương trình của bạn có thể không truy cập được thông qua COM bằng các thông tin đăng nhập khác nhau. Các ứng dụng văn phòng có xu hướng là một cá thể đơn lẻ có vẻ làm trầm trọng thêm vấn đề này.

+0

Thú vị đủ khi tôi đăng nhập vào hệ thống và chạy Word nó chạy trình cài đặt. Tôi đoán không ai chạy từ trước đây trên người dùng này. Nó đã không giải quyết vấn đề của tôi nhưng tôi tự hỏi ngay cả w/o vấn đề cho phép nếu điều đó có thể đã ngừng nó làm việc. Không có mã của tôi là Ứng dụng web. Trong khi đây là một ứng dụng nhỏ hiếm khi được sử dụng tôi không bao giờ xem xét những gì sẽ xảy ra nếu hai người đã cố gắng để chạy nó cùng một lúc.Thanks cho rằng đầu vào. Có cách nào để xem liệu một số khác có đang truy cập đối tượng COM không? Tôi khá chắc chắn không có gì khác là nhưng tôi thậm chí sẽ không biết nơi để kiểm tra điều đó. – TheDPQ

+0

Ứng dụng Web đang chạy với tư cách người dùng nào? Ví dụ, trong IIS 7, pool ứng dụng sẽ chạy như hệ thống cục bộ mà có lẽ sẽ có cùng một vấn đề. –

+0

Một lần nữa xin lỗi sự thiếu hiểu biết của tôi nhưng là "Dịch vụ mạng" những gì bạn đang nói về? Đó là danh tính mà nhóm ứng dụng được đặt để sử dụng. – TheDPQ

0

Có vẻ như bạn có thể gặp sự cố về quyền trong DCOM. Thử chỉnh sửa quyền Word trong cấu hình DCOM.

+0

Tìm thấy một vài người tham khảo http://blog.crowe.co.nz/archive/2006/03/02/589.aspx nhưng nó cho excel. Không trợ giúp, lỗi này giống nhau nhưng số lỗi đã thay đổi thành: 80080005. System.Runtime.InteropServices.COMException thay vì System.UnauthorizedAccessException – TheDPQ

0

Tôi đã gặp vấn đề tương tự và diện tích vấn đề tôi thấy được "cấu hình bảo mật cho Microsoft Word trong DCOM". Trên liên kết sau, bạn có thể tìm thấy hướng dẫn từng bước để biết cách cấu hình các thành phần trong DCOM, lặp lại các bước này cho WORD và vấn đề của bạn sẽ được giải quyết.

http://www.biocompsystems.com/_public/DCOMConfigurationStepbyStepForXP.doc

Cảm ơn, Sushil Jinder

0

Đến Start -> Run
loại regedit -32 và nhấn phím Enter.
- Trình chỉnh sửa đăng ký sẽ mở.
Go To registry HKEY_CLASSES_ROOT \ Word.Application
Chọn Word.Application và thiết lập sự cho phép đầy đủ xuống dưới người sử dụng: -
Administrator, quản trị, dịch vụ địa phương, hệ thống, dịch vụ, tương tác và người dùng.

1

Trong trường hợp của tôi, Word đang chạy qua Dịch vụ Windows trong tài khoản dịch vụ.

Vấn đề là thư mục Desktop không tồn tại trong C:\Windows\System32\config\systemprofile (hoặc trong C:\Windows\SysWOW64\config\systemprofile).

Việc thêm giải quyết sự cố cho tôi.

0

Tôi gặp sự cố tương tự khi tạo tài liệu từ. Vấn đề tôi đã giải quyết bằng cách kiểm tra trình quản lý tác vụ và bằng cách kết thúc tiến trình đang chạy WINWORD.EXEs và sau đó thực hiện lại mã của tôi. Vấn đề đã biến mất.