【问题标题】:Can an Azure service run unmanaged code?Azure 服务可以运行非托管代码吗?
【发布时间】:2009-07-06 18:10:04
【问题描述】:

我创建了一个使用 TagLib# (http://developer.novell.com/wiki/index.php/TagLib_Sharp) 的 WCF 服务,该服务依赖于非托管 dll(我认为是 Win32)来完成大部分繁重工作。是否有机会在 Azure 中托管此 WCF 服务?

我确实在 .csdef 文件中找到了这个:

<WebRole name="WebRole" enableNativeCodeExecution="true">

这能达到我希望的效果吗?

作为附录,非托管代码是 32 位还是 64 位是否重要?我从经验中知道,尝试从 64 位 WCF 服务调用 32 位 Dll 是行不通的,我相信 Azure 是一个 64 位平台。

【问题讨论】:

    标签: .net azure


    【解决方案1】:

    我实际上认为 JP 是反其道而行之。云中的 P/Invoke 将适用于 64 位,但不适用于 32 位,因为我们所有的 VM 默认运行 Win 2k8 x64。当然,您总是可以生成一个新进程。

    另外,请注意,今天无法注册 COM 服务器 - 我不确定 Taglib 如何使用 COM。

    【讨论】:

    • 似乎解决方法是在 Azure 中生成一个 32 位子进程,然后执行 p/invoking。
    • 是的。在这种情况下,子进程将在 WOW64 上,所以一切都应该是 32 位
    【解决方案2】:

    在 32 位平台上,可以使用 P/Invoke 来完成。但是,不是在 64 位平台上。查看this article 了解更多信息。但是,您可以自己托管服务,并根据需要使用 Azure 的 service bus 功能。

    【讨论】:

      猜你喜欢
      • 2015-09-15
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      相关资源
      最近更新 更多