1

社内にsqlserverとcrm2011がインストールされた仮想マシンがあり、コードのテストに使用しています。sdkIOrganizationServieProxyWebサービスを呼び出す簡単なWebサービスを作成しました。この仮想マシンでは、私のコードはエラーなしで完全に機能します。しかし、ここに状況があります。他に2つの仮想マシンがあり、そのうちの1つにはSQLサーバーがインストールされ、もう1つにはcrmがインストールおよび構成されています。crmは正常に機能しますが、crm sdk IOrganizationServieProxy webservice webmethodsを呼び出すWebサービスを使用しようとすると、次のエラーが発生します。この質問に答えてくれた人に事前に感謝します。

    System.ServiceModel.Security.SecurityNegotiationException: SOAP security negotiation with 'http://localhost/KN/XRMServices/2011/Organization.svc' for target 'http://localhost/KN/XRMServices/2011/Organization.svc' failed. See inner exception for more details. ---> System.ComponentModel.Win32Exception: The Security Support Provider Interface (SSPI) negotiation failed.
   at System.ServiceModel.Security.WindowsSspiNegotiation.GetOutgoingBlob(Byte[] incomingBlob, ChannelBinding channelbinding, ExtendedProtectionPolicy protectionPolicy)
   at System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(Message incomingMessage, SspiNegotiationTokenProviderState sspiState)
   at System.ServiceModel.Security.IssuanceTokenProviderBase`1.GetNextOutgoingMessage(Message incomingMessage, T negotiationState)
   at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)
   --- End of inner exception stack trace ---

Server stack trace: 
   at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)
   at System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.SecurityChannelFactory`1.ClientSecurityChannel`1.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
   at System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   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.Xrm.Sdk.IOrganizationService.RetrieveMultiple(QueryBase query)
   at Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.RetrieveMultipleCore(QueryBase query)
   at KNCRMSearchWebService.searchContactsByNameAndFamilyName(String cl, String Name, String Family)

これが私のvisualstudioデバッグモードからのエラーを示す画像です:

ここに画像の説明を入力してください

4

1 に答える 1

3

当てはまらないかもしれませんが、使用した URL が CRM 展開マネージャーで設定された WCF バインドと一致しないという問題が発生しました。

たとえば、「MyCRMServer」という名前のサーバーは、次のポート 80 でリッスンしている可能性があります。

http://MyCrmServer/

...しかし、Deployment Manager で CRM サーバーを URL "crm.myCompany.com" に変更した場合は、この URL を使用して Web サービスにアクセスする必要があります。

http://crm.myCompany.com/
于 2012-10-26T12:46:01.810 に答える