2012-02-15 20 views
4

こんにちは私はcobolアプリケーションと対話するC Dllを持っています。私たちはインターネットを介してコボルにデータを送信したいと考えています。ASP.NETからDLLを呼び出すことができません

私はC DLLを呼び出すC#DLLを作成しました。私はconsoleappを行うが、私はASP.NETからその与えるエラーメッセージ

を同じDLLを呼び出すしようとすると、私はこのに関するいくつかの他の記事があります

An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) 

そのエラーを理解しないが、ときには、細かい作業しますそれらは私のコンテキストに一致していなかった 私はasp.netのためpermissionsを逃すイム

これはCのDLL

[DllImport(@"C:\CCExpert\haz450cp.dll", EntryPoint = "Methodname", CallingConvention = CallingConvention.Cdecl)] 
    unsafe public static extern void Methodname(ref p1, ref p2); 
を呼び出すための私のC#のDLL内の宣言だと思います

編集:

こんにちは、私はあなたの提案に応じて設定を変更したが、今この問題の最も可能性の高い原因はあなたに32ビットのDLLをロードしようとしているということである新しいエラーに

Microsoft Visual Studio C Runtime Library has detected a fatal error in w3wp.exe 
+0

コンソールアプリケーションから上記の宣言でこの.dllを呼び出すことができる場合は、ASP.NETと同じ宣言がうまく動作するはずです。これにより、IISで32/64ビットの問題が発生する可能性が高くなります。 – xxbbcc

答えて

7

C.dllがあれば32ビットまたは64ビットのいずれかです。

IIS 7では、アプリケーションのビット数を構成することができます。アプリケーションプールを右クリックしてAdvanced Settingsを選択して、プールを作成します。 Enable 32-bit applicationsという設定があります.32ビットサイトの場合はTrue、64ビットサイトの場合はFalseに設定する必要があります。

あなたはDLLは、32ビットまたは64ビットであるかどうかを確認するためにDependency Walkerを使用することができます(ツールバーのC:\のように見える)View full pathsを使用している場合、あなたの.dllの依存関係と:

  • あなたの場合32ビットのOSをお使いの場合、.dllは64ビットです。あなたはそれをロードすることができません。あなたは64ビットOSがある場合
  • は:
    • を依存関係がSystem32に下にある場合、それは依存関係がSYSWOW64下にある場合、それは
    • の.dll、32ビットの64ビットの.dll
    • です

これは、アプリケーションプールの設定方法を示しています。アプリケーションプールを設定するには、this linkをチェックしてください。

Advanced Settingsは、基本設定ではなく、アプリケーションプールのプロパティを開くときに使用してください。また、これらの設定は、サイトのプロパティを表示するときには使用できません。これらの設定は、アプリケーションプールでのみ使用できます。

+0

私はそれをチェックしましたが、私はできません私のIISで 'Enable 32-bit applications'オプションを見つけてください。 – Raghuveer

+0

@RaghuveerGuthikonda:どのOSを使用していますか? – xxbbcc

+0

私のOSが勝つ7究極の64bit – Raghuveer

2

を取得イム64ビットプロセス(またはその逆)。これを確認したり、Asp.Netが64ビットモードで動作しているかどうかを確認したり、64ビット版のC DLLが必要かどうかを確認するには

+0

私は32ビットdllを持っていると思う私は32ビットの下で実行するasp.netを変更することができますdllを今すぐ変更することはできません – Raghuveer

+0

@RaghuveerGuthikonda私はあなたができるとは確信していません。私が見つけた最高の情報はここにありましたhttp://forums.iis.net/t/1152526.aspx – JaredPar

+0

こんにちは、私は質問が更新された理由を知っていますか... – Raghuveer

関連する問題