我曾尝试在 IIS 中托管的 ASP.NET 4 Web 应用程序上使用 NMath 库。虽然它在开发机器上完美运行,但在服务器上它抛出了这个异常:
无法加载 DLL 'nmath_native_x86.dll':访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.DllNotFoundException:无法加载 DLL 'nmath_native_x86.dll':访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))
源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[DllNotFoundException:无法加载 DLL 'nmath_native_x86.dll':访问被拒绝。(Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))]
CenterSpace.NMath.Kernel.DotNetBlas.ca985db1fb290841a533a3547ace1ae2b(Int32* ca9e3f1c0641beace93cb8eb4a27060d6, Double* cf339080161dff75cfd1b46a10c2eec70, Int32* c757a2154665e6da4d820f8c504ec2601, Double* c00a69c4fa5b6d809b68a96ca184dcf79, Int32* c1565590bf448d2c630952a0391360cc3) +0
CenterSpace.NMath.Kernel.DotNetBlas .copy(Int32 n, DoubleDataBlock x, Int32 xOffset, Int32 incx, DoubleDataBlock y, Int32 yOffset, Int32 incy) +149 CenterSpace.NMath.Core.DoubleVector.set_Item(Slice slice, DoubleVector value) +165
虽然我在这里读到它可能与AppPool的权限或类似的东西有关,但我似乎无法指出问题所在。会是什么呢?!