[英]ClosedXML Read excel file Error: The type initializer for 'MS.Utility.EventTrace' threw an exception. (C#)
我正在使用 closedXML 在 asp.net 应用程序中开发 Excel 上传功能。 该功能在我使用本地 IIS 时工作正常,而在我使用 Visual Studio 2013 时出现异常。这不允许我在代码中进行进一步调试。
例外:
Message: The type initializer for 'MS.Utility.EventTrace' threw an exception.
Stack Trace:
at MS.Utility.EventTrace.EasyTraceEvent(Keyword keywords, Event eventID)
at System.IO.Packaging.Package.Open(String path, FileMode packageMode, FileAccess packageAccess, FileShare packageShare, Boolean streaming)
at System.IO.Packaging.Package.Open(String path, FileMode packageMode, FileAccess packageAccess, FileShare packageShare)
at DocumentFormat.OpenXml.Packaging.OpenXmlPackage.OpenCore(String path, Boolean readWriteMode)
at DocumentFormat.OpenXml.Packaging.SpreadsheetDocument.Open(String path, Boolean isEditable, OpenSettings openSettings)
at DocumentFormat.OpenXml.Packaging.SpreadsheetDocument.Open(String path, Boolean isEditable)
at ClosedXML.Excel.XLWorkbook.LoadSheets(String fileName)
at ClosedXML.Excel.XLWorkbook.Load(String file)
at ClosedXML.Excel.XLWorkbook..ctor(String file, XLEventTracking eventTracking)
at ClosedXML.Excel.XLWorkbook..ctor(String file)
at OnlinePolicyUpload.ReadExcel(String filePath) in d:\Application\XYZ\OnlineUpload.aspx.cs:line 413
内部异常:
Message: Requested registry access is not allowed.
Stack Trace:
at System.ThrowHelper.ThrowSecurityException(ExceptionResource resource)
at Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable)
at Microsoft.Win32.RegistryKey.OpenSubKey(String name)
at Microsoft.Win32.Registry.GetValue(String keyName, String valueName, Object defaultValue)
at MS.Utility.EventTrace.IsClassicETWRegistryEnabled()
at MS.Utility.EventTrace..cctor()
我的代码段:
private DataTable ReadExcel(string filePath)
{
try
{
DataTable dt = new DataTable();
IXLWorkbook workBook = new XLWorkbook(filePath);
IXLWorksheet workSheet = workBook.Worksheet(1);
bool firstRow = true;
foreach (IXLRow row in workSheet.Rows())
{
if (firstRow)
{
foreach (IXLCell cell in row.Cells())
{
dt.Columns.Add(cell.Value.ToString());
}
firstRow = false;
}
else
{
dt.Rows.Add();
int i = 0;
foreach (IXLCell cell in row.Cells())
{
dt.Rows[dt.Rows.Count - 1][i] = cell.Value.ToString();
i++;
}
}
}
return dt;
}
catch (Exception ex)
{
throw ex;
}
}
在IXLWorkbook workBook = new XLWorkbook(filePath);
行抛出异常
文件路径对所有人 IIS_IUSRS具有完全访问权限。 将此更改为false将影响我的应用程序登录失败。 <identity impersonate="true" userName="username" password="pass" />
尝试将权限更改为对注册表HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics具有完全访问权限的每个人。 没运气。
请帮我解决一下这个。
这是 2008 年开发的一个非常古老的应用程序。通过正确更新CrystalDecisions.Web.dll
解决了这个问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.