Office 문서에 포함 된 사용자 선택 필드에 "사용자 추가" 대화 상자가 표시 되지 않음

문제

다음과 같은 예를 참조하십시오.

  • Office 정보 창에 사용자 선택 필드가 포함 된 Word 문서 또는 InfoPath 양식과 같은 Office 파일을 사용 하 고 있습니다.
  • 클라이언트는 "https" 주소를 사용 하 여 Microsoft SharePoint 사이트에 연결 합니다.
  • 클라이언트와 SharePoint 2010 또는 SharePoint 2013 서버 간에 프록시 서버 또는 부하 분산 장치가 존재 합니다. SSL이 프록시 서버 또는 부하 분산 장치에서 종료 됩니다.

이 시나리오에서 파일을 클라이언트 응용 프로그램에서 열면 포함 된 사용자 선택 필드에 볼 수 있는 결과가 표시 되지 않습니다. 또한 네트워크 추적은 다음 경로에서 SharePoint 사이트로 전송 되는 https 요청에 대해 "http 500" 오류를 표시 합니다.

/_vti_bin/spclaimproviderwebservice.https.svc

이 문제가 발생 하면 SharePoint 웹 프런트 엔드 서버의 이벤트 뷰어에 다음 항목과 비슷한 이벤트가 표시 될 수 있습니다.

Log Name: Application  
Source: System.ServiceModel 4.0.0.0  
Date: <Date and Time>  
Event ID: 3  
Task Category: WebHost  
Level: Error  
User: <Service account>  
Computer: <FQDN>  
Description:  
WebHost failed to process a request.  
 Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/57709411  
 Exception: System.ServiceModel.ServiceActivationException: The service '/_vti_bin/spclaimproviderwebservice.https.svc' cannot be activated due to an exception during compilation. The exception message is: Could not find a base address that matches scheme https for the endpoint with binding BasicHttpBinding. Registered base address schemes are [http]..  
 ---> System.InvalidOperationException: Could not find a base address that matches scheme https for the endpoint with binding BasicHttpBinding. Registered base address schemes are [http].  
 at System.ServiceModel.ServiceHostBase.MakeAbsoluteUri(Uri relativeOrAbsoluteUri, Binding binding, UriSchemeKeyedCollection baseAddresses)  
 at System.ServiceModel.Description.ConfigLoader.LoadServiceDescription(ServiceHostBase host, ServiceDescription description, ServiceElement serviceElement, Action`1 addBaseAddress, Boolean skipHost)  
 at System.ServiceModel.ServiceHostBase.ApplyConfiguration()  
 at System.ServiceModel.ServiceHostBase.InitializeDescription(UriSchemeKeyedCollection baseAddresses)  
 at System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses)  
 at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(Type serviceType, Uri[] baseAddresses)  
 at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)  
 at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)  
 at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity)  
 at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)  
 --- End of inner exception stack trace ---  
 at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)  
 at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath, EventTraceActivity eventTraceActivity)  
 Process Name: w3wp  
 Process ID: <PID> ULS logs from the SharePoint server may contain entries that resemble the following:  

<Date and Time> w3wp.exe SharePoint Foundation Runtime fx7n Medium Cannot find factory type for service at /  
_vti_bin/spclaimproviderwebservice.https.svc   

원인

이 문제는 SharePoint가 사이트에 "http" 또는 "https" 주소를 사용 하는지 여부에 따라 웹 사이트에 서로 다른 web services를 이용 하기 때문에 발생 합니다. 웹 사이트에서 "http"를 사용 하는 경우 예상 되는 웹 서비스 주소는 spclaimproviderwebservice입니다. 웹 사이트에서 "https"를 사용 하는 경우 예상 되는 웹 서비스 주소는 spclaimproviderwebservice입니다.

이 시나리오에서는 사용자가 "https" 주소를 탐색 하지만 SSL은 프록시 서버 또는 부하 분산 장치에서 종료 됩니다. SharePoint 웹 프런트 엔드 서버는 http 요청을 받기 때문에 http 버전의 서비스에 대 한 웹 서비스 요청 경로를 예상 하 게 됩니다. 즉,/spclaimproviderwebservice.https.svc.가 아닌/spclaimproviderwebservice.svc를 예상 _vti_bin/_vti_bin 합니다.

따라서/_vti_bin/spclaimproviderwebservice.https.svc SSL 웹 서비스에 대 한 요청은 http 500 오류를 발생 시킵니다.

문제 해결 방법

이 문제를 해결 하려면 다음 방법 중 하나를 사용 하십시오.

메서드 A

요청을 SharePoint WFE (웹 프런트 엔드) 서버 역할에 전달 하기 전에 spclaimproviderwebservice를 포함 하는 https 사이트에 대 한 요청을 http 및 spclaimproviderwebservice로 변경 하려면 부하 분산 또는 IIS (인터넷 정보 서비스) 내에서 iRule를 추가 합니다.

방법 B

프록시 서버 또는 부하 분산 장치 대신 SharePoint 서버에서 SSL이 종료 되도록 웹 사이트 토폴로지를 조정 합니다.

추가 정보

방법 A의 경우 다음 논리를 확인 하 여이 문제를 해결 합니다.

IIS 규칙:

<rule name="SpClaimProviderWebService" stopProcessing="true">  
< match url="^(.*)spclaimproviderwebservice.https.svc$" />  
< action type="Rewrite" url="{R:1}spclaimproviderwebservice.svc" />  
< /rule>  

F5/NLB 규칙:

when HTTP_REQUEST {  
if { [[string tolower] [HTTP::path]] contains "spclaimproviderwebservice.https.svc"} {  
HTTP::path [string map {.https ""} [HTTP::path]]  
}  
}  

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