我尝试过使用NMath库 IIS 4中托管的ASP.NET 4 Web应用程序。虽然它在开发机器上运行良好,但在服务器上却抛出了这个例外:
无法加载DLL'nmath_native_x86.dll':访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))
描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:System.DllNotFoundException:无法加载DLL 'nmath_native_x86.dll':访问被拒绝。 (HRESULT的例外情况: 0x80070005(E_ACCESSDENIED))
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
[DllNotFoundException:无法加载DLL'nmath_native_x86.dll': 访问被拒绝。 (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或类似的东西的权限,我似乎无法指出问题。它可能是什么?!
答案 0 :(得分:2)
可能有两种选择。
1)是否安装了C ++运行时?没有它,NMath无法加载本机dll。请参阅此处的部署部分:http://centerspace.net/doc/NMath/user/overview-83427.htm#Xoverview-83427
2)也许您没有正确配置NMath?您可以执行NMathConfiguration.NativeLocation指向某个位置。更多信息:
http://centerspace.net/doc/NMathSuite/ref/html/T_CenterSpace_NMath_Core_NMathConfiguration.htm
最后,请使用NMathConfiguration.LogLocation生成日志文件。生成的日志文件将告诉您哪里出错了。