UACを使用したWCF NetTCPサービスのデバッグ

uac visual-studio-2010 wcf windows-7
UACを使用したWCF NetTCPサービスのデバッグ

実稼働用のWindowsサービスで実行される一連のNetTCPサービスが構成されていますが、デバッグのためにコンソールアプリを使用してそれらを起動します。 Windows Vistaでは、面倒だったためUACを完全に無効にしましたが、非常に静かでありつまらないので、必要なすべてを実行するため、7で有効のままにしておきます。

私が遭遇した問題は、VSを「標準」モードで実行しているときです(つまり、 管理者として実行を使用していない)サービスは次のようにスピンアップしません:

「アクセスが拒否されたため、サービスエンドポイントはURI ‘net.tcp:// localhost:60000 / [ServiceName]’でリッスンできませんでした。 SMSvcHost.exe.configの適切なallowedAccountsセクションで、現在のユーザーにアクセスが許可されていることを確認します。

少し調査した結果、このファイルを見つけて、ユーザーアカウントのSIDで変更することができました。 設定は次のようになります。

SIDはSysinternalsスイートにパッケージ化されたツールから取得され、ADSI Editに対して検証されたため、正しいことがわかりました。 リブート後もサービスは起動しませんが、ソリューションまたはプロジェクトファイルをダブルクリックできないため、管理モードで強制的に実行しないようにしています。

誰かアイデアがありますか? SMSvcHost.exe.configファイルは「C:\ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation」から取得され、x64を実行していても、アプリはx86モードでコンパイルされます。 それが私の悩みがどこにあるのか分かりませんか?

  0  0


ベストアンサー

「正しい」構成ファイルの場所を見つけるには、次の手順を実行します。タスクマネージャーの[サービス]タブでNetTcpPortSharingを見つけます。 コンテキストメニューで[Go to process]をクリックします。 [ファイルの場所を開く]をクリックします。

ps. Windows 2008 R2 x64では、.NET 4の場所はC:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319です。

2


タイトルとURLをコピーしました