ROMANCE DAWN for the new world

Microsoft Azure を中心とした技術情報を書いています。

Azure Cognitive Search への接続で TLS1.2 エラーが発生していた件

6年くらい前に作った Azure Cognitive Search を使った Web アプリケーションで、「リモート パーティがトランスポート ストリームを終了したため、認証に失敗しました。」という接続エラーが発生していました。

f:id:TonyTonyKun:20210612200924p:plain

現在の 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 とか、めっちゃ懐かしい・・・