2011-07-14 6 views
3

私はWinFormsアプリケーションでホストされているWCFサービスを持っています。このWCFサービスは、Visual Studio 6でATLで書かれたCOMコンポーネントを呼び出します.Windows XPでは正常に動作します。ただし、GetFileAttributesを呼び出すと、Windows 7でCOMコンポーネントが失敗します。たとえそれがあってもその道は存在しないと言います。マップされたネットワークドライブです。私がこれについて考えることができる唯一の理由は、WCFサービスをホストするWinFormsアプリケーションが右クリックして管理者として実行する必要があることです。私はその後、COMコンポーネントが効果的に同じ昇格権を得ていると想定しているため、マシンにログインしているユーザーのもとに存在していたマップされたドライブは、アプリケーションに関する限り存在しなくなります。WCFはXPでは動作しますがWindowsでは動作しません

これは正当な前提ですか、もしそうなら、これを解決するための私の選択肢は何ですか?

答えて

1

Windows 7(およびそれに相当するもの)では、管理者として実行すると、マップされたドライブが不足しています。これは、基本的に別のログイントークンに切り替えるためで、ネットワークドライブは管理者以外のユーザーにのみマップされるからです。

これを克服するにはいくつかの方法があります。詳しくはherehereを参照してください。

また、2つのトークンをリンクするレジストリ設定(これらのリンクには記載されていません)があります。使用については、KB article about EnableLinkedConnectionsa discussionを参照してください。

+0

ありがとうございました。これは私が疑った通りです。ソリューションはあまりうまくいきませんし、彼らが実際に私たちのシナリオで使用可能かどうかを疑問視しています。最後の議論は、潜在的にあなたのシステムを危険にさらすことの警告のために単純に探検するつもりはない。しかし、多くのリンクに感謝します。 – Jonnster

+0

@Jonnster、 'EnableLinkedConnections'は安全でないと言われていますが、推論はかなり弱いIMHOです。ローカルドライブに関する問題がなければ同じ問題があり、誰もそれを気にしません。とにかく、これがあなたの質問に答えるならば、それを受け入れてください。そうでない場合は、質問のタグを変更することをお勧めします.WCFに関するよりも、セキュリティに関するものです。 – eran

関連する問題