2009-06-21 37 views
1

は、私は共有ドライブにファイル操作を行うために使用するWCFサービスを、持っているWCFサービスWCFサービスのログイン失敗不明なユーザー名または不正なパスワード

に新たなんです。 共有場所に書き込み/読み込みしようとすると、例外が発生します。 "ログイン失敗が不明なユーザー名またはパスワードが間違っています"

ファイル操作がうまくいけば、問題はすべて移動しました。 WCFサービスへのコード、今私は上記の例外を取得します。

あなたはWCFサービスを言うとき、あなたはWCFサービスをホストするWindowsサービスを意味する場合は任意のヘルプは大

おかげ あるVinod

+0

あなたはどのバインディングを使用していますか?どのようなセキュリティ設定が有効ですか?サーバーとクライアントの設定を表示できますか? –

+0

私の答えがあなたの投票に忘れずに、「正解」としてチェックするのを助けた場合); –

答えて

2

をいただければ幸いです。名前とパスワードが正しく書き込まれている場合、私はWindowsサービスのアイデンティティを確認します。

WCFサービスがIISでホストされている場合は、アプリケーションプールまたはIIS匿名アカウントとして機能するアカウントのIDである可能性があります。

上記の両方のケースでは、Windows認証を使用している場合は、IDが正しく設定されていることを確認してください。

コメントに基づいて、ファイルにアクセスしようとしているログオンユーザーの資格情報のようです。同時に、ファイルは別のディスク上にあります。私の最高の推測では、ファイルの場所にアクセスできないユーザーアカウントを使用しているということです。

+0

iis 5.1でホストされていますが、私はアプリケーションプールについてはわかりません。 がWeb設定でを設定している場合、ディレクトリセキュリティはiisセキュリティ設定の統合Windows認証に設定されています。 他のWCFサービスを使用してデータベースにアクセスできますが、別の場所にある共有ドライブにアクセスする際に問題があります。 どのような例であれ大いに役立ちます。 ありがとう –

0

Vinodでは、ファイルシステムにアクセスするために使用するアカウントはSystem.Security.Principal.WindowsIdentity.GetCurrent()です。これをチェックします。 ASPNETが表示された場合は、偽装されていません。

<identity impersonate="true"/> 

既定ではWCFサービスはASP.NETのパイプラインを使用しないため(HttpContextにアクセスできないため)、効果はありません。それがhereと記載されているaspnetの互換性をオンにする必要がない場合。

ASP.NETの偽装:デフォルトでは、WCFは 要求常にASP.NETが のSystem.Webの設定 オプションを使用して偽装を有効にする 設定されている場合でも、IIS プロセスIDとして実行されます。

ソリューション:あなたの代わりにASPのWindowsサービスを使用することを決定した場合、それはASP.NETにとても驚きに依存しませんので、(より良いユーザーを偽装する別の方法があります

<system.serviceModel>   
    <serviceHostingEnvironment aspNetCompatibilityEnabled=”true” />  
</system.serviceModel> 

。 NET、しかし私はテストしていない)、見てhereを取る。

+0

スラッシュンに感謝!それは私を助けた。 –

関連する問題