IIS保存Word文档的权限

时间:2009-02-04 01:11:37

标签: c# asp.net vbscript iis-6

我们的ASP.NET / C#允许用户编辑和管理托管在服务器上的Word(OpenXML)文档。我使用客户端VBScript函数来处理一些编辑功能,包括将文档保存到服务器上的文件夹。对于保存功能,我使用以下函数调用:

Document.SaveAs "http://server/savefolder/savefile.docx" 

我已将保存文件夹的“完全控制”权限授予NETWORK SERVICEIUSR_MACHINE用户。然而上述呼叫失败了。返回的错误号为5096。错误信息是一些没有任何意义的胡言乱语。

服务器是Windows 2003,IIS版本是6.0。我在服务器上安装了OpenXML SDK 2.0 CTP。

我可以成功阅读和打印文件。

有谁告诉我我做错了什么?或者需要进行哪些其他设置?


BTW,错误信息(我的帖子中的“乱码”)是:

“EOALPHABETICARABICARABICABJADARABICALPHABAHTTEXTCAPSCARDTEXTCHARFORMATCHI”

不,我不是这样做的!

8 个答案:

答案 0 :(得分:2)

在我的情况下,该错误5096描述“EOALPHABETICARABICARABICABJADARABICALPHABAHTTEXTCAPSCARDTEXTCHARFORMATCHI” 在Access中使用VBA代码来驱动Word邮件合并时发生。原因是试图将具有相同名称(包括路径)的文档保存为打开文档。

错误行:

objApp.ActiveDocument.SaveAs saveAsName 

其中objApp是表示Word应用程序的对象变量,saveAsName是存储我试图保存文件的名称的字符串变量,例如: "C:\temp\testdoc.docx"

如果存在具有相同名称但未打开的文件,则上述代码将以静默方式覆盖该文件。

答案 1 :(得分:1)

结果默认情况下,IIS 6.0中未启用WebDAV。一旦我打开它,我就能保存好文件了。

感谢您的所有答案!

答案 2 :(得分:0)

只是猜测...如果vbscript在客户端上运行,代码可能在用户的帐户下运行,而不是在服务器的IIS帐户下运行。因此,除非您为该用户提供写访问权限,否则vbscript可能无法正常工作。

由于您使用的是ASP.NET,因此您可以尝试编写一个Web服务,该服务接收Word文档数据并将其保存到服务器中。

答案 3 :(得分:0)

您在网站根目录之外使用的保存文件夹,即“隐藏”来自互联网吗?

答案 4 :(得分:0)

我尝试在客户端上运行Fiddler,同时尝试保存文档以了解实际情况。我想知道它是否正在尝试进行HTTP PUT(而不是POST)。

答案 5 :(得分:0)

您是否在IIS管理器中授予了对该文件夹的写入权限?

答案 6 :(得分:0)

只是添加SI的信息......

当我的代码尝试使用同名保存MS Word文档时,我也得到了 5096 - EOALPHABETICARABICARABICABJADARABICALPHABAHTTEXTCAPSCARDTEXTCHARFORMATCHI 错误与另一个Word实例中已打开的Word文档位于同一位置。

虽然与这个主题并不完全相关,但我希望它可以帮助那些偶然发现这个主题的人!

此致 杜安,

答案 7 :(得分:0)

这个问题虽然陈旧但仍然活跃? 您使用http:// ... url保存文件,我认为您应该使用文件URL保存它

Document.SaveAs "\\server\savefolder\savefile.docx"  

Grtz