6年くらい前に作った Azure Cognitive Search を使った Web アプリケーションで、「リモート パーティがトランスポート ストリームを終了したため、認証に失敗しました。」という接続エラーが発生していました。
現在の Azure Cognitive Search は TLS1.2 接続を強制しているため、.NET Framework 4.5.2 の既定動作では接続できないことが原因でした。
対応としては、Web アプリケーションの起動時の Startup クラスで、SecurityProtocol に TLS1.2 の対応を追加してあげれば OK です。SecurityProtocolTypeを列挙せずとも、この書き方で追加できます。
[assembly: OwinStartup(typeof(GoroWebsitesV2.Startup))] namespace GoroWebsitesV2 { public class Startup { public void Configuration(IAppBuilder app) { // TLS1.2 を追加 ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12; app.UseWebApi(config); } } }
OwinStartup とか、めっちゃ懐かしい・・・