Разрыв со стороны сервисной службы от Microsoft, вызывающий исключение WebException в надстройке Office - PullRequest
1 голос
/ 02 марта 2020

Это хороший добрый самаритянин для Microsoft, а не вопрос для сообщества.

Они нарушили свой код VerificationServiceClient из-за некоторых изменений на стороне сервера, из-за которых VerificationServiceClient выдает исключение. Я исправил свое приложение Office Add-In ASP. NET в ответ на этот перерыв, но для того, чтобы помочь другим, на кого это может повлиять, я также хотел показать его Microsoft.

Подробности:

У меня есть надстройка Office для Word в Office App Store, которая успешно работает с 2014 года без каких-либо изменений кода. Недавно мое приложение спонтанно начало падать со 100% -ной согласованностью, генерируя WebException в ASP. NET коде со стековой трассировкой

at System.Net.HttpWebRequest.GetResponse
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply
at System.Net.Sockets.NetworkStream.Read
at System.Net.FixedSizeReader.ReadPacket
at System.Net.Security.SslState.StartReceiveBlob
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive
at System.Net.Security.SslState.StartSendBlob
at System.Net.Security.SslState.ForceAuthentication
at System.Net.Security.SslState.ProcessAuthentication
at System.Net.TlsStream.CallProcessAuthentication
at System.Threading.ExecutionContext.RunInternal
at System.Threading.ExecutionContext.Run
at System.Threading.ExecutionContext.Run
at System.Net.TlsStream.ProcessAuthentication
at System.Net.TlsStream.Write
at System.Net.PooledStream.Write
at System.Net.ConnectStream.WriteHeaders
at System.Net.Sockets.Socket.Receive
at System.Net.Sockets.NetworkStream.Read

, который исходит из исходного кода, который Microsoft предоставила разработчикам в 2014 году для включения в веб-приложения Office Add-In для проверки прав:

 VerificationServiceClient service = new VerificationServiceClient();
 VerifyEntitlementTokenRequest request = new VerifyEntitlementTokenRequest();
 request.EntitlementToken = decodedLicenseToken;
 VerifyEntitlementTokenResponse validationResponse = service.VerifyEntitlementToken(request);
...