私は、古いプロジェクトの古い dll ファイルを使用してパスワードを暗号化する新しいプロジェクトを職場で開発しています。文字列を関数に渡すと、暗号化された文字列が返されます。
現在、Win 7 マシンでローカルにテストすると問題なく動作しますが、Win Server 2008 に配置すると動作しません。最初は、64 ビットで 32 ビットを動作させようとするとエラーが発生しましたが、IIS アプリ プールで「32 ビット アプリケーションを有効にする」を true に設定したところ、エラーが発生しなくなりましたが、暗号化された文字列を返さなければならない行には、「接続がリセットされました」というタイムアウトが発生するまでそこに留まります。しかし、死の黄色い画面はありません。
プログラム「依存関係ウォーカー」を使用して、dll が使用するものを確認しました。そこから、kernerlBase.dll を使用する kernerl32.dll を参照していることがわかります (この kernelBase.dll は Win 7 マシンに存在しますが、Win サーバーには存在しません)。 . 古いプロジェクトを再構築した後、「エラー」のような静的文字列を dll から返そうとしましたが、何も返されませんでした。それでもタイムアウトし、文字列を暗号化するために使用する機能にも行かないようです。
私はこれを使用しています...
[DllImport("MD5CriptUnix.dll")]
public static extern string md5_crypt(string pass, string salt);
... dll をインポートして使用しますが、これは再び私のマシンで動作します。エラーが表示されないため、サーバーで動作すると思います