【问题标题】:HttpModule Native C++ dll in AzureAzure 中的 HttpModule 本机 C++ dll
【发布时间】:2012-06-26 23:32:16
【问题描述】:

我想在 Windows azure 中运行原生 httpmodule(c++ 64 位 dll)。首先这是可能的,其次,最好的方法是什么?

我以前在 azure 中使用过本机 dll,但将其包装在一个运行良好的托管 c# httphandler 中,但这次我想直接托管本机 dll。是否可以像在 IIS 中一样在 Azure 中托管本机 dll?

【问题讨论】:

    标签: dll azure native httpmodule webrole


    【解决方案1】:

    我相信您使用的是 Windows Azure Web 角色,并且在 Windows Azure Web 角色上,带有 IIS 的本机 HttpModule 配置将与其他 IIS 服务器相同,这里唯一的技巧是您将使用启动任务来运行 AppCmd 命令安装、注册和配置您的原生模块。

    您在启动任务中需要的基本命令如下所示:

    appcmd install module /name: string /image: string /add:true|false /lock:true|false
    

    例如,要使用 %windir%\system32\inetsrv 目录中的 .dll 文件注册、启用和锁定名为 ImageCopyrightModule 的模块,请在命令提示符处键入以下内容,然后按 ENTER:

    appcmd install module /name: ImageCopyrightModule /image:c:/%windir%/system32/inetsrv/ imageCopyrightModule .dll /add:true /lock:true
    

    【讨论】:

      【解决方案2】:

      是的,有可能,我最近不得不在我的 Azure 项目中使用一个非托管 C 库,所以我所做的就是为它创建一个 C++/CLI 包装器,然后在我的 C# 项目中简单地引用它。
      我相信这是最简单的方法,否则您需要使用 P/Invoke 直接从 C# 调用非托管本机代码。

      请记住,在云端,Azure 使用 2008 Visual C++ 运行时库,因此您必须使用 VS2008 编译您的 C++ 项目,或者更好的选择是将 Visual C++ 2010 Redistributable Package 上传到云端并静默安装它在启动时。

      我列出了 3 个简单的步骤来做到这一点here如果你有兴趣。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-12
        • 1970-01-01
        • 2019-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多