0

サーバーアプリケーションDCOM/datasnap(delphi 7)、クライアントアプリケーション(httpsrvr.dllによってサーバーを呼び出す)、およびWebサービスDLL(delphi 7)があります。このdllは、asp.netWebアプリケーションで呼び出されます。すべてがIIS6Webサーバーで正常に動作しますが、IIS 7環境64(Windows Server 2008RC2またはSeven64ビット)にインストールするときに問題が発生しました:1。http呼び出しが機能しない(httpsrvr.dllはISS7サイトのWebで定義されています)2。asp.net(2.0)でのWS呼び出しが機能しない

Apache 2.2ソリューションをテストしましたが、リンククライアント(exe delphi)サーバーは動作します(cgi bin apacheディレクトリのhttpsrvr.dll)。oleVariantサイズの制限(タイムアウト)がありますが、dllWebサービスをセットアップできません。URLは'http://127.0.0.1/cgi-bin/WABridge.dll/soap/IWABridgeのようなものです(このURLはasp.netアプリケーションのURLプロキシです)。このURLはIE(またはFF)->内部エラーでは機能しません。FFで'http://127.0.0.1/cgi-bin/WABridge.dll/IWABridgeを設定すると、wsdl定義ページが表示されますが、asp.netWebページにエラー404ファイルが見つかりません...TIA、よろしく

4

2 に答える 2

2

IIS7.5 (64bit) で Asapi dll を実行する方法

アプリケーション プールの作成

  1. IIS を開き、アプリケーション プールを追加します。
  2. 「AppPool32」という名前</li>
  3. プロパティを変更します:

    • Net Framework バージョン: マネージ コードなし
    • マネージド パイプライン モード: クラシック
    • 32 ビット アプリケーションを有効にする: True

Isapi と Cgi を許可する

  1. コンピューター名のルートで、[Isapi & Cgi Restriction] をダブルクリックします。
  2. [追加] をクリックします
  3. Isapi DLL へのブラウザ
  4. 拡張パスの実行を許可するにチェックを入れる

アプリケーションを作成する

  1. [Web サイト] > [既定の Web サイト] ノードを右クリックし、[アプリケーションの追加...] をクリックします。
  2. エイリアス、アプリケーション プール、および物理パスを選択します。選択するアプリケーション プールは、作成したばかりの「AppPool32」である必要があります。

アプリケーション内での ISAPI DLL の実行を許可する

  1. ツリー ビューでアプリケーション ノードを選択し、Hander Mappings をダブルクリックします。
  2. [スクリプト マップの追加...] をクリックします。
  3. *.dll の要求パスを入力し、IsapiModule モジュールを選択して名前を付けます。[OK] をクリックします。

私はいくつかの問題を抱えていました

構成の問題により、モジュール DLL 'C:\Program Files\Microsoft\Exchange Server\V14\ClientAccess\Owa\auth\exppw.dll' を読み込めませんでした。現在の構成では、x86 プロセッサ アーキテクチャ用にビルドされたイメージの読み込みのみがサポートされています。データ フィールドにはエラー番号が含まれます。この種のプロセッサ アーキテクチャの不一致エラーのトラブルシューティング方法など、この問題の詳細については、 http: //go.microsoft.com/fwlink/ ?LinkId=29349 を参照してください。

C:\Windows\System32\inetsrv\config\applicationHost.config に移動します。

変化あり

"add name="kerbauth" image="C:\Program Files\Microsoft\Exchange Server\V14\Bin\kerbauth.dll"/>"

の中へ

"add name="kerbauth" image="C:\Program Files\Microsoft\Exchange Server\V14\Bin\kerbauth.dll" preCondition="bitness64" />"

preCondition="bitness64" を使用します

それが私の解決策でした。このエラーは、WebOffice が開始されたため発生しました。

于 2011-12-06T14:56:26.413 に答える
1

問題は、Web サービス DLL が 32 ビット DLL であり、64 アプリケーション (この場合は IIS) でロードできないことだと思います。(1) DLL を 64 ビット DLL として再コンパイルします。これには Delphi XE2 が必要です。(2) DLL が COM DLL の場合、Windows ラッパーを使用して 32 ビット COM DLL を 64 ビット COM DLL に変換できます。

最初のオプションが最適ですが、64 ビットと互換性のないサードパーティのコンポーネントまたはライブラリがある場合は、達成するのが難しい場合があります。2 番目のオプションは、再コンパイルしなくても機能するはずですが、パフォーマンスが少し低下します。

于 2011-12-06T10:33:21.053 に答える