HTTP 요청은 클라이언트 인증 체계 '협상'으로 무단입니다.
-
20-09-2019 - |
문제
Windows SharePoint Services의 Visual Studio Extensions 1.3 (2009 년 3 월 CTP)을 기반으로 Visual Studio 프로젝트를 배포/패키지하려고하지만 다음 오류를 얻으려고합니다!
HTTP 요청은 클라이언트 인증 체계 '협상'으로 무단입니다. 서버에서받은 인증 헤더는 '협상, NTLM'입니다.
액세스 할 수 있습니다 http://127.0.0.1:1378/spservice.svc 브라우저를 통해; VSEWSS Service는 네트워크 서비스 인 SharePoint Central Administration V3 응용 프로그램 풀에 따라 운영됩니다. SharePoint 서비스는 기본 설정과 함께 설치됩니다. 네트워크 서비스는 로컬 관리자 그룹의 회원입니다.
이 기계는 Windows 2003 표준 Editon SP2이며 도메인의 일부이며 도메인 사용자로 로그온합니다. 내 사용자는 Machine 'Local Administrators Group의 회원 이며이 로그인을 사용하여 SharePoint 서비스를 설치하여 거의 모든 필수 SharePoint 보안 그룹 (Farm Administrator; Site Collection Administrator 등)의 구성원이되었습니다.
나는 stackoverflow를 시도했다 http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment 포럼 과이 두 가지의 다른 게시물에서 제안 된 거의 모든 것을 시도했습니다. 그러나 지금까지 아무도 작동하지 않았습니다!
VSEWSS1.3.LOG에는 다음 항목이 있습니다
2010/02/12 16:49:01 Error
Error: System.ServiceModel.Security.MessageSecurityException
System.ServiceModel.Security.MessageSecurityException: The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'Negotiate,NTLM'. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
--- End of inner exception stack trace ---
Server stack trace:
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest request, HttpWebResponse response, WebException responseException, HttpChannelFactory factory)
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.SharePoint.Tools.SPServiceReference.ISPService.GetWeb(String url)
at Microsoft.SharePoint.Tools.SharePointSolutions.SolutionDeployer.ValidateProjectDeployURL()
at Microsoft.SharePoint.Tools.SharePointSolutions.SolutionDeployer.Deploy()
해결책 2
도메인에서 기계를 제거했습니다. VSEWSS, SharePoint 및 IIS를 제거합니다. 도메인에서 기계를 제거한 후 IIS를 다시 설치했습니다. SharePoint 및 VSEWSS를 설치 한 후; 상황이 잘 작동하기 시작했습니다!
다른 팁
루프백 주소 (127.0.0.1) 대신 컴퓨터의 실제 호스트 이름을 사용해 볼 수도 있습니다. LocalHost 또는 Loopback 주소를 사용하는 경우 Kerberos를 사용하여 로그인 할 수 없으므로 특정 유형의 위임 시나리오가 실패하게됩니다.
발생할 수있는 것은 브라우저가 NTLM 사용에 대해 조용히 "다시 떨어질"수 있으며 VS 배포와 같은 다른 프로그램이 그런 식으로 행동하지 않는다는 것입니다. 종종 Kerberos 만 사용합니다. 따라서 루프백 대신 호스트 이름을 사용해보십시오. 그래도 작동하지 않으면 아마도 컴퓨터에서 Kerberos에 문제가있을 수 있습니다. 정말 하드 코어를 느끼고 있다면 Kerberos를 읽고 Wireshark 사본을 다운로드 한 다음 "KRB5"클래스 오류 메시지를 찾아 실패한 것을 정확히 확인할 수 있지만 이것은 매우 큰 시간 투자입니다.