我有一个 C# 程序,它根据密钥号查询远程数据库中的图像文件。当它找到匹配项时,它会在本地(在运行程序的服务器上)定位文件并将其复制到临时本地目录,从该目录在用户的浏览器中提供图像。但是,我收到一个指向程序的 file.CopyTo 行的 COM 错误。该程序确实成功找到了文件并将其复制到临时目录,因此它实际上可以工作,但由于某种原因,它显然没有收到成功消息或其他什么,因此它在将文件名返回给模块之前停止这将在浏览器中提供它。如果这太模糊,我很抱歉。下面是错误,然后我把它指向的代码行。真的没有太多要补充的,因为它显然具备成功所需的条件,但似乎并不承认这一点。让我知道是否需要发布更多无论如何...
“/Indus”应用程序中的服务器错误。
DB-0039 复制文件时出错。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Runtime.InteropServices.COMException:DB-0039 复制文件时出错。
源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[COMException (0x80004005): DB-0039 复制文件时出错。] XtenderSolutions.interop.AEXDBLib.IObjectFile.CopyTo(Object FileName) +0 ip_axdb.AXNetConnect.GetAXDocuments(String FieldValue) 在 C:\IndusAXProject2013\IP_AXDb\ AXDB\AXNetConnect.cs:67
IP_EDMSforVentyx._Default.Page_Load(Object sender, EventArgs e) in C:\IndusAXProject2013\IP_EDMSforVentyx\EDMSforVentyx_Default.cs:21
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t , EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35 System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+2207
这行代码很简单:
file.CopyTo(filepath + filename);
这是其中的一部分:
for (int j = 1; j <= ((int) pages.Count); j++)
{
PAGE page = (PAGE) pages[j];
PageVersions versions = (PageVersions) page.Versions;
int num4 = 0;
num4 = (int) versions.Count;
if (num4 < 1)
{
break;
}
PAGEVERSION pageversion = (PAGEVERSION) versions[num4];
ObjectFile file = (ObjectFile) app.FileObject;
filename = i.ToString() + "_" + j.ToString() + ".tif";
file.ObjectId = pageversion.ObjectId;
file.PathId = (pageversion.PathId);
file.GenerateNewFileName();
file.CopyTo(filepath + filename);
if (IsJpegHeader(filepath, filename))
{
this.DeleteImgFile(filepath, filename);
file.CopyTo(filepath + (i.ToString() + "_" + j.ToString() + ".jpg"));
}
}
无论如何,如果有人有任何想法,谢谢。