2009-10-21 2 views
0

원격 데스크톱 연결을 통해 내 서버에 액세스하고 IIS에서 웹 서비스를 구성했습니다. 나는 메서드를 볼 수 있지만 "Invoke"버튼을 클릭 할 때 다음 오류가 발생합니다.오류 ASMX 웹 서비스에서 SQL Server에 액세스

'System.Data.SqlClient.SqlException : 로그인 실패'SOLDev \ Server02 $ '. (ShareWare.Web.Service.WebAPI.Reservation.GetInfo())

왜 컴퓨터 이름을 사용자로 사용합니까? Windows 인증 사용자가 User1Dev입니다. 비활성화

  • 옵션 "Windows 통합 인증"입니다 - -

    1. 옵션 "익명 액세스 사용"

    I를 확인 : 다음 또한 IIS 내 디렉토리 보안가 설치 될 때 .NET Framework 2.0을 사용하고 있습니다

  • +0

    조금 자세히 설명해주세요. –

    +0

    특히 원격 데스크톱을 사용하지 않을 때 문제가 발생합니까? 'Invoke'버튼을 사용하지 않을 때 발생합니까? –

    답변

    0

    웹 서비스가 로그인 한 사용자가 아닌 네트워크 서비스 ID로 실행 중이기 때문입니다. 또한 사용자의 자격 증명을 사용하여 SQL Server에 연결하려는 경우 웹 구성에 <identity impersonate="true" />이 있어야합니다.

    +0

    내가 뭔가 mentione는이 코드 줄을 추가했다 할 필요가 있다고 생각 : 에 이렇게,이 같은 Web.config의에서 요소를 삽입 할 수 있습니다! <구성> <- 어디서든 당신이 원하는 inside system.web -> Tony

    1

    웹 서비스는 Windows 인증을 서비스를 실행하는 주체로 사용하여 SQL에 연결합니다. 이 경우 BUILTIN \ System 또는 BUILTIN \ Network Service 인 것처럼 보입니다. 둘 다 컴퓨터 계정으로 도메인에서 인증됩니다. 'SOLDEV \ Server02 $'는 SOLDEV 도메인의 Server02라는 컴퓨터에 해당합니다.

    자신의 로그인으로 SQL Server에서 인증하려면 IIS가 제한된 위임이라는 프로세스에서 인증 정보를 전달해야합니다. Configuring Constrained Delegation for Kerberos (IIS 6.0). 또는 How To: Use Protocol Transition and Constrained Delegation in ASP.NET 2.0을 참조하십시오.

    웹 서비스가 SQL Server로 인증되도록하려면 SQL : CREATE LOGIN [SOLDEV\Server02$] FROM WINDOWS의 웹 서비스 보안 주체에 대한 로그인 권한을 부여해야합니다.