我发现这说azure web/worker角色可以加载原生c ++ dll.是否蔚蓝的网站也支持这一点?
我的站点是一个mvc站点,它调用本地c ++ dll,它从本地驱动器读取文件并进行一些计算.我更喜欢azure网站的原因是因为它从免费开始.
谢谢.
我通过NuGet安装了Libsodium-net并且能够在我的课程中包含Sodium,但是当我尝试运行它时,我得到了
Sodium.dll中出现"System.DllNotFoundException"类型的异常,但未在用户代码中处理
其他信息:无法加载DLL'libsodium.dll':找不到指定的模块.(来自HRESULT的异常:0x8007007E)
我只是想从gitbooks文档中运行示例代码 https://bitbeans.gitbooks.io/libsodium-net/content/password_hashing/index.html
const string PASSWORD = "Correct Horse Battery Staple";
const string SALT = "qa~t](84z<1t<1oz:ik.@IRNyhG=8q(o";
const long OUTPUT_LENGTH = 512;
//this will produce a 512 byte hash
var hash = PasswordHash.ScryptHashBinary(PASSWORD, SALT, PasswordHash.Strength.Medium, OUTPUT_LENGTH);
Run Code Online (Sandbox Code Playgroud) 使用libsodium-net在Azure Service Fabric Reliable Service中实现其所有安全性,在我的本地开发群集上一切正常(尽管我必须将libsodium-64.dll设置为复制到输出目录).
不幸的是,当部署到Azure中的真实集群时,它会抛出以下错误:
Unable to load DLL 'libsodium-64.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
我已通过远程桌面检查到其中一个节点,并将DLL复制到与服务相同的目录中,就像在我的开发群集中一样.无法解决为什么在生产中找不到它.
我已经尝试按照这个答案中的建议设置PATH环境变量,并验证它确实设置了 - 不幸的是,这没有帮助.
为了让ASF拿起DLL,我需要做些什么特别的事情吗?
编辑:还尝试在所有节点上将DLL添加到System32,也没有解决它.