팜의 비기본 영역에서 쿼리 하는 경우 ContractFilter 오류가 발생 합니다.

현상도

SharePoint Server 2013 또는 2016 팜에서 기본 영역이 아닌 영역에서 쿼리를 실행 한 후 다음과 같은 ContractFilter 오류가 표시 됩니다.

An unknown error occurred. ---> System.ServiceModel.ActionNotSupportedException: The message with Action 'http://tempuri.org/ISearchQueryServiceApplication/IsUrlMappingCached' cannot be processed at the receiver, due to a ContractFilter mismatch    

at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None). Server stack trace:  

at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)  

at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)  

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]:  

이 문제는 일반적으로 게시 된 SSA (Search service 응용 프로그램)가 다른 팜에서 사용 되는 경우에 발생 합니다 (예: 팜 A로 게시 되었지만 팜 B에서 사용 되는 경우).

원인

서버에 호환 되지 않는 빌드가 있습니다. 검색 결과의 URL을 변환 하는 데 사용 되는 IsURLMappingCached 빌드 간에 변경 됩니다. 쿼리 원본 및 검색 프록시가 서로 다른 URLMapper 논리가 있는 두 서버에 있는 경우 ContractFilter 오류가 발생 합니다.

문제 해결 방법

이 문제를 해결 하려면 팜에 있는 모든 팜과 팜 간의 모든 서버가 같은 빌드를 갖도록 해야 합니다. 모든 서버에 동일한 누적 업데이트가 설치 되어 있고 Psconfig 명령줄 도구를 성공적으로 실행할 수 있는지 확인 합니다.

추가 정보

여전히 도움이 필요하세요? SharePoint 커뮤니티로 이동 합니다.