HTTP请求未经授权使用客户端身份验证方案“Negotiate”。

时间:2010-02-12 10:45:28

标签: visual-studio-2008 sharepoint vsewss

我正在尝试基于Visual Studio Extensions for Windows Sharepoint Services 1.3(2009年3月CTP)部署/打包Visual Studio项目,但收到以下错误!

  

HTTP请求未经授权使用客户端身份验证方案   '谈判'。从服务器收到的身份验证标头是   '协商,NTLM'

我可以通过浏览器访问http://127.0.0.1:1378/SpService.svc; VseWss服务在Sharepoint Central Administration v3应用程序池下运行,其标识为网络服务。 Sharepoint Services使用默认设置进行安装。网络服务是本地管理员组的成员。

该计算机是Windows 2003 Standard Editon SP2,是域的一部分,我使用域用户登录;我的用户是计算机本地管理员组的成员,我使用此登录安装了Sharepoint Service,这使我成为几乎所有必需的Sharepoint安全组(农场管理员;网站集管理员等)的成员

我尝试过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 个答案:

答案 0 :(得分:1)

您也可以尝试使用计算机的实际主机名而不是环回地址(127.0.0.1)。如果使用localhost或环回地址,则可能无法使用Kerberos登录,这会导致某些类型的委派方案失败。

可能发生的事情是您的浏览器可能会“静静地”退回到使用NTLM,而其他程序(如VS的部署)则不会这样 - 他们通常只使用Kerberos。因此,请尝试使用主机名而不是环回。如果这不起作用,您的计算机上可能存在Kerberos问题。如果你感觉真的很核心,你可以阅读Kerberos并下载WireShark的副本,然后查找“KRB5”类错误消息,看看究竟是什么失败,但这是一个非常大的时间投资。

答案 1 :(得分:0)

我从域中删除了该机器;卸载了VSeWSS,Sharepoint和IIS。从域中删除计算机后重新安装IIS。安装Sharepoint和VSeWSS之后;事情开始正常工作!

相关问题