c++ - 带有 c++ dll 的 azure webapp 无法正常工作

标签 c++ dll azure-web-app-service

我在 C# 中创建了一个 Azure Web,它引用了 native C++ 动态库。在本地主机上应用程序运行良好。

但是当我将 Web 应用程序部署到 Cloud Azure 时,它​​无法正常工作。不知道如何前进。请帮忙。

在重置 API 调用时出现“发生错误”。

最佳答案

On the reset API call getting following "An error has occurred."

要从 ASP.NET REST API 获取详细的错误信息,我们需要在 WebApiConfig.cs 中将 IncludeErrorDetailPolicy 属性的值设置为“Always”。

config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

如果更改 IncludeErrorDetailPolicy 后得到的异常是 DllNotFoundException,请确保 native DLL 已成功部署到 Azure Web App bin 文件夹。默认情况下, native DLL 文件不会随 VS 发布一起部署。您需要使用 FTP 或 Kudu 站点将此文件上传到您的 Web 应用程序的 bin 文件夹。

如果你改变IncludeErrorDetailPolicy后得到的异常是BadImageFormatException,你需要检查你的Web App的平台和你的原生DLL。

enter image description here

如果您的 Web 应用程序的平台是 32 位,请确保 native DLL 是构建目标 Win32 或所有平台。如果您在 64 位机器上构建 DLL。所有平台都是必需的。

enter image description here

此外,Azure Web App 在称为沙箱的安全环境中运行。沙箱通常旨在限制对 Windows 共享组件的访问。有关详细信息,以下链接供您引用。

General Azure Web App Sandbox Restrictions

如果您的 native DLL 使用受限 API 之一。调用您的 native DLL 也将失败。要查看 native DLL 的所有依赖模块,您可以下载并使用 Dependency Walker .

关于c++ - 带有 c++ dll 的 azure webapp 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44306285/

相关文章:

c++ - 我可以通过placement-new 覆盖const 对象吗?

带有标准输入的 C++ 字符数组

适用于 UWP 和经典桌面的 C++ 通用 Windows DLL

azure - .NET 5.0 Webjob 不再从独立构建开始

azure - 将 Azure Web App Files 文件夹装载到 VM 中?

c++ - VIM YouCompleteMe 错误 - NoExtraConfDetected : No . 检测到 ycm_extra_conf.py 文件

C++:std::vector 与 std::list 的性能

HANDLE 的 Python ctypes

dll - 如何在 Win32 桌面应用程序中使用自定义 WinRT 库?

azure - 如何在 Azure Web 应用程序中创建包含两个日期/时间之间的每个 URL 命中的报告?