我在C#中创建了一个Azure Web,它引用了本机C ++动态库。在本地主机应用程序运行良好。
但是当我将Web应用程序部署到Cloud Azure时,它无法运行。不知道如何前进。请帮忙。
在重置API调用中获取“发生错误。”
答案 0 :(得分:1)
在重置API调用中获取“发生错误。”
要从ASP.NET REST API获取详细错误信息,我们需要在WebApiConfig.cs中将IncludeErrorDetailPolicy属性的值设置为“Always”。
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
如果更改IncludeErrorDetailPolicy后出现的异常是 DllNotFoundException ,请确保将本机DLL成功部署到Azure Web App bin文件夹。默认情况下,VS发布不会部署本机DLL文件。您需要使用FTP或Kudu站点将此文件上传到Web应用程序的bin文件夹。
如果更改IncludeErrorDetailPolicy后出现的异常是 BadImageFormatException ,则需要检查Web App的平台和本机DLL。
如果您的Web应用程序的平台是32位,请确保本机DLL是构建目标Win32或所有平台。如果您在64位计算机上生成DLL。所有平台都是必需的。
此外,Azure Web App在称为沙箱的安全环境中运行。沙箱通常旨在限制对Windows共享组件的访问。有关详细信息,请参阅以下链接供您参考。
General Azure Web App Sandbox Restrictions
如果您的本机DLL使用受限API之一。调用您的本机DLL也将失败。要查看本机DLL的所有依赖模块,可以下载并使用Dependency Walker。