2009-04-09 10 views
3

メッセージキューから読み取るWebサービスを作成しました。 これはCassiniでうまく動作します。サービスは、キューにアクセスしようとしたときASP .Net WebサービスからMSMQにアクセスする際のアクセス権のエラー

は今、私はIISの下でサービスを展開していることを、私は、エラーメッセージが表示されます。

キューが存在しないか、操作を実行するための十分な権限がありません。

IIS仮想ディレクトリの匿名アクセスユーザーを、ローカルマシンの管理者グループのメンバである自分のドメインアカウントに設定しました。私はこの同じユーザーに、ネットワークサービスとASPNETだけでなく、キューに対して完全なアクセス許可を与えました。

同じエラーメッセージが表示されます。

仮想ディレクトリの匿名アクセスを無効にして、自分のログイン情報を使用してサービスに接続しようとしました。無駄にしました。

この問題のお手伝いをさせていただきます。


私もの様々な組み合わせを試してみました:

とtestUsrがキューに完全な権限を有する 。 C:\

+0

は、私はまたの様々な組み合わせを試してみましたキューに対する完全なアクセス許可。私はC:\ – RobD

答えて

5

私は、コードを実行しようとしているプロセスが、IISの下でCassiniとは異なるアカウントとして実行されていると認識しています。

問題は、ユーザーがローカルとドメインの管理者グループのメンバであっても、このユーザーがキューに対して完全なアクセス許可を持っていても、常に同じエラーメッセージが表示されます。即ち、ユーザに対してより多くの権利を割り当てることはほとんど不可能である。

それは

FORMATNAME ...キューのFORMATNAMEを使用してではなく、パス名(MYMACHINE \ QUEUENAMEする)問題を解決したことが、判明:DIRECT = OS:MYMACHINE \ MYQUEUE

なぜこれが当てはまるのか正確にはわかりません。読んだところでは、パス名を使用するとADルックアップの必要性があることを示しています。私がテストしているユーザーにはこれを実行する権限が必要だと思いますが、おそらく欠けているものがあります。

しかし、すぐに問題が解決され、それは私には十分です。 testUsrが持つ <認証モード= "Windowsの" /> と <身元偽装= "true" をuserNameに= "myXPpc \ testUsr" パスワード= "パスワード1" /> :

+0

のMSMQストアフォルダにユーザーとASPNETのアクセス許可を追加しました。ありがとうございました。これについては、MSDNのドキュメントがあいまいです。文字通り「Formatname:」の部分を先頭に入れる必要があります。 – geedubb

関連する問題