こんにちは。
SQL Server 2005 SP1でWebサービスを作成しました。
このサービスにASP.NET2.0で作成したアプリケーション(発行して、そのディレクトリをIIS管理ツールより仮想ディレクトリ設定した。ASPなどのスクリプトを実行する、にはチェックを入れた。)からアクセスしようとしましたが、以下のようなメッセージのエラーダイアログが表示され、アクセスする事が出来ません。何か設定が必要なのでしょうか?
There was an error in the incoming SOAP request packet: Client, LoginFailure, AccessDenied
行った作業は、以下のようなスクリプトを実行し、エンドポイントを作成しました。
sp_configure 'clr enabled', 1
Go
RECONFIGURE
Go
-------------------------------------------
IF EXISTS
(
SELECT name from sys.http_endpoints
WHERE name = 'sql_endpoint'
)
DROP ENDPOINT sql_endpoint
GO
CREATE ENDPOINT sql_endpoint
STATE = STARTED
AS HTTP(
PATH = '/sql',
AUTHENTICATION = (INTEGRATED ),
PORTS = (CLEAR))
FOR SOAP (
WEBMETHOD 'http://tempUri.org/'.'GetXXX'
(name='XXXX.dbo.GetXXX'),
WSDL = DEFAULT)
GO
-------------------------------------------
grant connect on endpoint ::sql_endpoint to [マシン名\ユーザ名]
-------------------------------------------
開発環境はWindows Server 2003 SE SP1で、このマシンにVS2005 Team Edition for DeveloperとSQL Server 2005を入れています。[マシン名\ユーザ名]は、このマシンにログインしているユーザです。このマシンはNTドメインには参加していなくて、ワークグループです。1つのマシンでサーバー、クライアント環境共試しています。
VS2005からASP.NETアプリケーションをデバッグ実行した時は、問題無く接続できます。また、別の環境(Windows Server 2003 EE SP1 + VS2005 Professional Edition + SQL Server 2005 Developer Edition SP1でNTドメインに参加しているマシンに構築)では、grantのSQLを実行する以前に、問題無く接続出来ます。