Windows azure でネイティブ httpmodule (c++ 64 ビット dll) を実行したいと思います。第一に、これは可能であり、第二に、それを行うための最良の方法は何ですか?
以前は Azure でネイティブ dll を使用していましたが、正常に機能するマネージド c# httphandler 内にラップしましたが、今回はネイティブ dll を直接ホストしたいと考えています。IIS と同じように、Azure でネイティブ dll をホストすることは可能ですか?
Windows azure でネイティブ httpmodule (c++ 64 ビット dll) を実行したいと思います。第一に、これは可能であり、第二に、それを行うための最良の方法は何ですか?
以前は Azure でネイティブ dll を使用していましたが、正常に機能するマネージド c# httphandler 内にラップしましたが、今回はネイティブ dll を直接ホストしたいと考えています。IIS と同じように、Azure でネイティブ dll をホストすることは可能ですか?
はい、可能です。最近、AzureプロジェクトでアンマネージCライブラリを使用する必要があったため、C ++ / CLIラッパーを作成し、C#プロジェクトで参照するだけでした。
これが最も簡単な方法だと思います。そうしないと、P / Invokeを使用して、アンマネージネイティブコードをC#から直接呼び出す必要があります。
クラウド側では、Azureは2008 Visual C ++ランタイムライブラリを使用するため、VS2008を使用してC ++プロジェクトをコンパイルするか、Visual C++2010再頒布可能パッケージをクラウドにアップロードしてサイレントインストールすることをお勧めします。始めるとき。
興味があれば、ここにそれを行うための3つの簡単なステップをリストします。
Windows Azure Web ロールを使用していると思いますが、Windows Azure Web ロールでは、IIS でのネイティブ HttpModule 構成は他の IIS サーバーと同じであり、ここでの唯一のトリックは、スタートアップ タスクを使用して AppCmd コマンドを実行してインストールすることです。ネイティブ モジュールを登録して構成します。
スタートアップ タスクに必要な基本的なコマンドは、次のようになります。
appcmd install module /name: string /image: string /add:true|false /lock:true|false
たとえば、ImageCopyrightModule という名前のモジュールを %windir%\system32\inetsrv ディレクトリの .dll ファイルに登録、有効化、およびロックするには、コマンド プロンプトで次のように入力し、Enter キーを押します。
appcmd install module /name: ImageCopyrightModule /image:c:/%windir%/system32/inetsrv/ imageCopyrightModule .dll /add:true /lock:true