我正在尝试使用 c#、DataSet 和 OpenXML 自动化邮件合并过程。在本地运行时,我有一个完整的工作示例。然而,当发布到我们的网络服务器时,我收到了拒绝访问错误,尽管我什至可以在任何地方授予完全控制权。
这是导致错误消息的代码:
try
{
var strTemplateTestFile = strMergeBuildingLocation.Replace(".docx", "_Test.docx");
// Don't continue if the template file name is not found
if (!File.Exists(strTemplateFileName))
throw new Exception("TemplateFileName (" + strTemplateFileName + ") does not exist");
foreach (var dr in dsData.Tables[0].Rows)
{
string strFileName;
if (doesDestinationExist(strMergeBuildingLocation))
{
File.Copy(strTemplateFileName, strTemplateTestFile, true);
strFileName = strTemplateTestFile;
}
else
{
File.Copy(strTemplateFileName, strMergeBuildingLocation, true);
strFileName = strMergeBuildingLocation;
}
var pkg = Package.Open(strFileName, FileMode.Open, FileAccess.ReadWrite);
using (var docGenerated = WordprocessingDocument.Open(pkg))
尝试打开 docGenerated 时,问题属于最后一行。
我收到的错误消息是:
拒绝访问路径“docx 路径”。
该文件按预期复制,并且可以手动打开和修改。文件夹中没有任何内容会限制对文件的访问。有没有人对问题可能有任何想法?