参考文档:http://www.cnblogs.com/wolf-sun/p/3574278.html
我选用的方案:先用office com组件生成pdf,然后使用pdf.js在线预览pdf文档。在自己写demo的过程下遇到如下两个问题,在此记录一下,希望能帮助到遇到同类问题的兄弟姐妹们。
1.在服务器上安装Office Plus 2010后,使用其com组件生成pdf时出现权限错误
System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).
解决方法有:
方法1.在web.config中配置identity
<system.web>
<authentication mode="Forms">
<forms name="_AuthUserKey" cookieless="UseCookies" protection="All" path="/" loginUrl="~/Account/Login" defaultUrl="~/Website/Home/Index">
</forms>
</authentication><authorization>
<deny users="?" />
</authorization>
<identity impersonate="true" userName="wdeploy" password="123"/>
方法2.配置DCOM
控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCom配置-》找到Microsoft Word文档
之后
单击属性打开此应用程序的属性对话框。
2. 单击标识选项卡,然后选择交互式用户。
3.单击"安全"选项卡,分别在"启动和激活权限"和"访问权限"组中选中"自定义",然后
自定义->编辑->添加ASP.NET账户和IUSER_计算机名
* 这些帐户仅在计算机上安装有 IIS 的情况下才存在。
4. 确保允许每个用户访问,然后单击确定。
5. 单击确定关闭 DCOMCNFG。
如果在组件服务中就看不到Microsoft Offfice Word,则需要重新安装OFFICE。
2.WORD Application.Documents.Open函数返回null的一种解决方法
DCOM Config Setting for "Microsoft Office Word 97 - 2003 Document" 内部配置一切正常,但调用Application.Documents.Open函数还是返回null。下面是一个解决方法:
"C:WindowsSysWOW64configsystemprofile"目录下创建一个"Desktop"目录。