8

Tôi hiện đang phát triển tập lệnh có tài liệu Word, mở tài liệu đó trong Word và sau đó in tệp Word dưới dạng PDF. Mọi thứ hoạt động tốt khi chạy thủ công trên máy tính hoặc máy chủ của tôi. Vấn đề xảy ra khi tôi cố gắng chạy nó như một nhiệm vụ theo lịch trình.Từ Interop không hoạt động trong tác vụ theo lịch

Một trong những yêu cầu là việc này nên được thực hiện hàng đêm mà không cần bất kỳ sự can thiệp nào. Khi tôi thiết lập một nhiệm vụ lịch trình để làm điều này và thiết lập các tùy chọn bảo mật để "Chỉ chạy khi người dùng đăng nhập" tất cả mọi thứ hoạt động tốt. Vấn đề là, điều này phải được chạy với hoặc không có ai đó đang đăng nhập. Nếu tôi đặt nhiệm vụ "Chạy liệu người dùng được đăng nhập hay không", kịch bản không thành công trên dòng sau:

wordDoc = MSWord.Documents.Open(ref fileToConvert, ref refFalse, ref refTrue, 
           ref RN, ref RN, ref RN, ref RN, ref RN, 
           ref RN, ref RN, ref RN, ref RN, ref RN, 
           ref RN, ref RN, ref RN); 

MSWord.Documents.Open() công trình, nhưng trả về null.

Tác vụ này đang chạy trên Windows Server 2008 với Office 2007.

Có cách tiếp cận nào khác mà tôi nên thực hiện không?

+0

tôi đã có vấn đề chính xác cùng, trải qua lứa tuổi cố gắng giải quyết nó, đi xuống ngõ cụt khác nhau, và cuối cùng là "giải pháp" tôi đã kết thúc với là: không sử dụng Windows Server 2008. Nếu bạn tìm thấy một giải pháp cho điều này, tôi sẽ là tất cả các tai. –

+0

Vì vậy, nó hoạt động nếu bạn không sử dụng Server 2008? –

+0

Trên máy chủ Windows 2003 hoặc trên XP, có. Bạn không chắc chắn về Vista. –

Trả lời

3

Tôi tin rằng nhiều người đã cố gắng làm điều gì đó gần với những gì bạn đang cố gắng và thất bại. Có rất nhiều trò chuyện về việc không thể chạy bất kỳ giải pháp dựa trên văn phòng interop nào trong một chế độ giống như máy chủ (không cần giám sát, vv).

Xem herehere

Tôi biết điều này có lẽ không phải là câu trả lời bạn đang tìm kiếm nhưng nó vẫn là như thế nào nó được!

+0

Tôi đang tìm bất kỳ câu trả lời nào. Tôi không thể tìm thấy bất kỳ thông tin nào về những gì đang xảy ra từ một loạt các tìm kiếm của Google, vì vậy, cảm ơn bạn đã nhập thông tin của bạn. Tôi sẽ cung cấp cho nó một vài giờ nữa và nếu một "giải pháp" không được đăng, tôi sẽ đánh dấu bạn là câu trả lời. –

+0

Các liên kết và thông tin tốt –

21

Tôi đã gặp sự cố khi tự động hóa Office từ Dịch vụ Windows trong Windows Server 2008, mặc dù hoạt động tốt trong Windows Server 2003. Sự cố cũng xảy ra tại cuộc gọi mở, mặc dù nó thực sự làm tăng ngoại lệ thay vì trả về giá trị rỗng . Dù sao, bạn có thể muốn thử điều này ...

Tôi đã thử theo lời khuyên do H Ogawa đưa ra trong this MSDN thread và dường như hoạt động. Đó là kỳ lạ, nhưng kudos để ông Ogawa để khám phá nó.

Tóm tắt của 'Ogawa Hack': tạo một thư mục máy tính để bàn cho cấu hình hệ thống, là một trong hai

C:\Windows\SysWOW64\config\systemprofile\Desktop, hoặc

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

... tùy thuộc vào việc bạn có 64-bit Các cửa sổ.

Ngoài ra, thư mục cần có quyền ghi cho bất kỳ người dùng nào là "lái xe" Office.

[Edit: chỉnh liên kết URL]

+1

Cảm ơn vì điều đó. Tôi sẽ phải xem xét ngay khi thời gian cho phép. Tôi sẽ đăng lại nếu nó hoạt động hay không. –

+0

Hoạt động tuyệt vời! Điều này tiết kiệm cho tôi tấn (thêm) đau đầu với điều này ... bây giờ chúng ta hãy hy vọng không có gì thực sự phá vỡ từ chạy Word từ một dịch vụ. –

+3

Nó làm việc cho tôi, nhưng tôi đã phải thêm người dùng vào nhóm Admin địa phương và kiểm tra tùy chọn "Chạy với quyền cao nhất". –