我想在windows azure中运行本机httpmodule (c++ 64位dll)。第一,这是可能的吗?第二,最好的方法是什么?
我之前在azure中使用过原生动态链接库,但将其包装在托管的c# httphandler中,运行良好,但这一次我想直接托管原生动态链接库。是否可以像在IIS中一样在azure中托管本机dll?
发布于 2012-06-27 01:10:09
我相信你正在使用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
发布于 2012-06-29 07:59:19
是的,我最近不得不在我的Azure项目中使用一个非托管的C库,所以我所做的就是为它创建一个C++/CLI包装器,并在我的C#项目中简单地引用它。
我相信这是最简单的方法,否则您将需要使用P/Invoke直接从C#调用非托管本机代码。
请记住,在云端,Azure使用2008Visual C++运行时库,因此您必须使用VS2008编译您的C++项目,或者更好的替代方案是将Visual C++ 2010 Redistributable Package上传到云并在启动时静默安装它。
如果你感兴趣,我列出了完成here的3个简单步骤。
https://stackoverflow.com/questions/11217391
复制相似问题