Protocol handler error due to deprecated interface in SharePoint 2016
Toute implémentation du gestionnaire de protocole réalisée à l’aide des interfaces présentées dans cet article dans le fichier d’en-tête srchprth.h est déconseillée dans SharePoint 2016. En effet, le Gestionnaire de protocole pour les interfaces déconseillées génère l’erreur « Impossible de charger le Gestionnaire de protocole ».
Symptôme
Quand vous chargez le Gestionnaire de protocole, le message d’erreur suivant s’affiche :
The protocol handler <name of custom protocol handler> cannot be loaded. Error description: No such interface supported.
Cause
Vous utilisez le fichier d’en-tête srchprth.h dans votre implémentation du gestionnaire de protocole. Ce fichier contient des interfaces déconseillées dans SharePoint 2016.
Résolution
Remplacez les interfaces déconseillées dans votre implémentation du gestionnaire de protocole par les interfaces prises en charge :
srchprth.h (mis à jour)
urlaccsdk.h (nouveau)
Interfaces déconseillées
Vous trouverez ci-dessous une liste des interfaces déconseillées :
interface ISearchProtocol : IUnknown
{
HRESULT Init([in] TIMEOUT_INFO *pTimeoutInfo,
[in] IProtocolHandlerSite *pProtocolHandlerSite,
[in] PROXY_INFO *pProxyInfo);
HRESULT CreateAccessor([in] LPCWSTR pcwszURL,
[in] AUTHENTICATION_INFO *pAuthenticationInfo,
[in] INCREMENTAL_ACCESS_INFO *pIncrementalAccessInfo,
[in] ITEM_INFO *pItemInfo,
[out] IUrlAccessor **ppAccessor);
HRESULT CloseAccessor([in] IUrlAccessor *pAccessor);
HRESULT ShutDown();
}
TIMEOUT_INFO
{
DWORD dwSize;
DWORD dwConnectTimeout;
DWORD dwDataTimeout;
}
PROXY_INFO
{
DWORD dwSize;
LPCWSTR pcwszUserAgent;
PROXY_ACCESS paUseProxy;
BOOL fLocalBypass;
DWORD dwPortNumber;
LPCWSTR pcwszProxyName;
LPCWSTR pcwszBypassList;
}
AUTHENTICATION_INFO
{
DWORD dwSize;
AUTH_TYPE atAuthenticationType;
LPCWSTR pcwszUser;
LPCWSTR pcwszPassword;
}
INCREMENTAL_ACCESS_INFO
{
DWORD dwSize;
FILETIME ftLastModifiedTime;
}
IProtocolHandler: public IUnknown
{
public:
HRESULT Init(
/* [in] */ LPCWSTR pwszUserAgent,
/* [in] */ DWORD dwUseProxy,
/* [in] */ DWORD dwConnectTimeout,
/* [in] */ DWORD dwDataTimeout,
/* [in] */ DWORD dwLocalByPassProxy,
/* [in] */ DWORD dwPortNumber,
/* [in] */ LPCWSTR pcwszProxyName,
/* [in] */ LPCWSTR pcwszByPassList,
/* [in] */ LPCWSTR pcwszProxyUserName,
/* [in] */ LPCWSTR pcwszProxyPassword,
/* [in] */ IProtocolHandlerSite *pProtocolHandlerSite) = 0;
HRESULT CreateAccessor(
/* [in] */ AccessorInitParams *pParams,
/* [out] */ IUrlAccessor **ppAccessor) = 0;
HRESULT CloseAccessor(
/* [in] */ IUrlAccessor *pAccessor) = 0;
HRESULT SetProcessMemorySize(
/* [in] */ DWORD dwFltrDmnMemoryQuota) = 0;
};
struct AccessorInitParameters
{
LPCWSTR pwszUrl;
LPCWSTR pwszCrawlTarget;
BOOL fUseSSLWithCT;
BOOL fUseCTForIntranet;
DWORD eAuthenticationType;
LPCWSTR pwszUser;
LPCWSTR pwszPassword;
LPCWSTR pwszHttpFrom;
FILETIME ftIfModifiedSince;
DWORD dwCrawlId;
DWORD dwMiniCrawlID;
DWORD dwDeletedCount;
DWORD dwDeletedCountSync;
BOOL fDeletedCountValid;
LPCWSTR pwszAppName;
LPCWSTR pwszCatName;
DWORD dwFilterPipeFlags;
LPCWSTR pwszContentClass;
LPCWSTR pwszSearchPropertyMappingUrl;
BYTE *pbChangeLogCookie;
DWORD cbChangeLogCookieLength;
BYTE *pbChangeLogCookieEnd;
DWORD cbChangeLogCookieEndLength;
LPCWSTR pwszFormsAuthURL;
LPCWSTR pwszFormsAuthPost;
BYTE *pbCachedBlob;
DWORD cbCachedBlobLength;
DWORD dwPHFlags;
LPCWSTR pwszSecurityId;
LPCWSTR pwszCorrelationId;
CLSID *pTenantID;
HANDLE hImpersonationToken;
} AccessorInitParams;
- AccessorInitParams contient de nombreux paramètres, dont certains peuvent être facultatifs. Ces paramètres sont principalement une extension des structures déconseillées précédemment.
Voir aussi
Pour plus d’informations, consultez Gestionnaires de protocole de recherche d’entreprise.