質問

リモートデスクトップ接続を介してサーバーにアクセスし、IISでWebサービスを構成しました。メソッドを見ることができますが、ボタンをクリックして<!> quot; Invoke <!> quot;次のエラーが表示されます:

System.Data.SqlClient.SqlException:ユーザー 'SOLDev \ Server02 $'のログインに失敗しました。    ShareWare.Web.Service.WebAPI.Reservation.GetInfo()で

ユーザーとしてマシン名を使用するのはなぜですか? 私のWindows認証ユーザーはUser1Devです。 また、IISの私のディレクトリセキュリティは次のように設定されています。

  1. オプション<!> quot;匿名アクセスを有効にする<!> quot; -無効になっています
  2. オプション<!> quot;統合Windows認証<!> quot; -チェックオフ

.NET framework 2.0を使用しています

役に立ちましたか?

解決

これは、Webサービスがログインユーザーとしてではなく、ネットワークサービスIDとして実行されているためです。ユーザーの資格情報を使用してSQL Serverに接続する場合は、おそらくWeb構成に<identity impersonate="true" />が必要になります。

他のヒント

Webサービスは、サービスを実行するプリンシパルとしてWindows認証を使用してSQLに接続します。この場合、それはBUILTIN \ SystemまたはBUILTIN \ Network Serviceのように見えます。どちらもドメインでマシンアカウントとして認証されます。ドメインSOLDEVのServer02という名前のマシンに対応する「SOLDEV \ Server02 $」。

独自のログインを使用してSQL Serverで認証する場合、IISはConstrained Delegationと呼ばれるプロセスで認証情報を流す必要があります。 設定Kerberos(IIS 6.0)の制約付き委任。または操作方法:使用ASP.NET 2.0でのプロトコルの移行と制約付き委任

Webサービスがそれ自体としてSQL Serverに対して認証されるようにする場合は、SQLのWebサービスプリンシパルにログイン権限を付与する必要があります。CREATE LOGIN [SOLDEV\Server02$] FROM WINDOWS

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top