2

私には理解できない非常に奇妙な問題があります。

まず、VS2010 で WCF サービス 4.0 を実行しました。サービスには、文字列配列、データテーブルなどを返すいくつかのメソッドがあります。それらのいくつかは、[dllimport] を通じて C++ dll の関数を使用します。

すべてをテストするためのテストコンソールを作成しました。Visual Studio から WCF を実行し、生成されたパスを使用すると、うまく機能します。

ここが奇妙になるところです。ローカル IIS を開いて新しいアプリケーションを作成し、VS ソース コードの WCF を指定すると、完全に表示されます。

代わりにIISローカルからのhttpパスを使用して、メソッドをすべて更新して正しいようです。しかし、テストアプリを実行すると、DLLIMPORT関数を使用している人を除いて、問題なく関数を呼び出すことができます。それらはすべてクラッシュし、CES 例外をトレースしてもトレースできません。

行ごとのロギングを行うと、例外が実際にそれらの関数の呼び出しにあることが示されます

問題のDLLは同じで、パスはまだテスト段階であるため、コンピューター用にハードコードされており、フォルダーは c:\DLL\mylib.DLL であるため、実際に実行するときにIIS / Visual Studioが行うシャドウコピーとは関係ありません。また、sys32にある場合でも、パスなしの名前によるDLL参照は機能しません。

どんな手掛かり ?

また。32 ビット、フォルダーのアプリ プール レベル権限の変更、マシンの完全な管理者も既に。すべて試しましたが失敗しました。

編集:これを明確にしていないので、すべてに追加します。これは私の最初のWCFの実際のセットアップではありません。私はすでに多くのサービスを作成し、それらを自分でデプロイしました (おそらく 50 ~ 60 のサービスのどこか)。私はこの問題をこれまで見たことがなく、私が知っているすべてのトリックを試し、インターネットと私が知っているリソースの人々で見つけることができたので、私は尋ねています.

IIS がホストしていない限り機能するため、サービス全体を WPF プロジェクトにローカルに組み込むことにしました。しかし、このデータと作業はクライアント側ではなくサーバー側で行うべきなので、これは本当に良いことではありません。これを使用する必要があるソフトウェアはまだ公開されておらず、重要ではないため、現時点では問題ありません。

次のオプションは、他に何も見つからない場合、Web サーバーでホストされているネット TCP/IP Windows サービスです。

4

1 に答える 1