私はC#からDllImport
を使用して呼び出すネイティブDLLの形式でサードパーティ製のAPIを使用しています。このネイティブdllは、開かれているサードパーティのアプリケーションに依存します。ネイティブDLLへの呼び出しが.NET Windowsサービスから失敗する
通常、コードを実行すると、APIが期待していることを行い、アプリケーションを駆動します。しかし、Windowsサービスと同じコードを実行すると、自分でもAPIはアプリケーションが閉じられたときと同じ(文書化されていない)エラーコードを返します。プロセスエクスプローラは、ネイティブdllがアプリケーションディレクトリから正しくロードされていることを確認します。
これを引き起こしている可能性がありますが、どのように問題を解決できますか?
エラーがどこで発生するかを判断するために、ダミーのアンマネージドDLLを使用しようとしましたか?p/invokeまたはdll自体にありますか? – abatishchev
@abatishchev - いいえ、それは間違いなくサービスに問題はありません。サービスを取り除いて、すべてがp /アンマネージドdllを呼び出すようにしました。私はFadrian Sudamanは、問題がアプリケーションやサービスを別のセッションで実行しているとか、そういうことであると言っても間違いないと思う。サードパーティーのソフトウェアは、ほとんど言わないでかなりropeyです。 – briantyler
コンソールアプリケーションからのp/invokeは正常に動作し、Windowsサービスからのものではありませんか? – abatishchev