2009-04-14 4 views
0

COMを使用していくつかのDLLと通信するWebサービスがあります。 DLL関数が依存するデータファイルはUnix共有にあり、COM呼び出しを初期化するときにデータファイルの場所を指定する必要があります。 SFU 3.5をWindows Server 2003サーバーにインストールしました。 IISはサービスとして実行されているため、マップされたドライブを使用することはできません(またはできますか?)。 UNCを使用しても、動作していないように見えます。ログインしたユーザーは、初めて場所を入力すると失敗し、次に動作します。 DLLから取得したすべてが「無効なデータファイルの場所」エラーであるため、IISの観点からテストする方法はわかりません。 Unix共有は開いています[ユーザ/パスワードは必要ありません]。Unixファイル共有にアクセスする必要があるCOM dllを呼び出すIIS Webサービス

おそらく、問題はIISではまったくなく、DLLはUNCまたはマップされたドライブにアクセスする必要がありますか?結局のところ、IISやWebサービスの実行可能ファイルではなく、実際にデータファイルにアクセスするのはDLLです。

私はCOM、DCOM、COM +についてはほとんど知りません。コンポーネントサービスを引き上げると、使用しているCOMオブジェクトが見つかりません。 [しかし、私は、 'オートメーションオブジェクト'の下でMS OLEVIEWを使用してそれらを見つけることができます。

ここには何がありますか?

答えて

0

Webサービスは、ASPNETユーザーで実行されるaspnet_wp.exeプロセスにロードされます。デバッグ情報(.pdbファイルが生成された)でソースがコンパイルされていることを前提に、このプロセスにアタッチしてデバッグすることができます。

適切なアクセス制限がある場合、UNCファイル共有を使用できるはずです。 Webサービスはローカルユーザーで実行されるため、資格情報を検証する方法がわからないため、ファイルサーバーのアクセス制限が厳しくなる場合があります。この場合、COMコンポーネントをホストするためのCOM +アプリケーションを作成し、それを別のアカウントで実行することができます。

関連する問題