ASP.NET MVCのWeb ApiでUnmanaged dllを使用するとOS再起動時の呼び出しが固まる
タイトルの通りの現象に困っています
サーバーは Windows Server 2012 R2
開発環境はVisual Studio 2015 + ASP.NET (.NET Framework 4.6.2)
です
ざっくり現象を書くと
Unmanaged dllを使ったWeb APIを呼ぶと固まってしまう
同様の処理をCのCGI(exe)で実行するとちゃんと動く
です
いろいろ試した結果を含めて詳細を以下に書きます
サードパーティ製ライブラリを2種類使用するUnmanaged dll(64bit)を作成しています(このDLLを①とします)
C言語のコンソールアプリで①をリンクして関数を呼ぶものを作りました(②)
MVCのWeb Api 2コントローラーを作成して①を呼ぶものを作りました(③)②,③はサーバーに配置してどちらもIISを通して呼ぶようにしました
サーバーを再起動してサービスが立ち上がったと思われるタイミングで②を呼ぶと常識的な時間で応答を返してくれました
同じことを③で試すと応答がかえって来ません(クライアント側のタイムアウトや、アプリケーションプールのPingエラーで強制終了させられる)
この状態は30分ほど待っても改善しません(それ以上は待っていないのでわかりません)②を呼んだあと③を呼ぶと1,2回くらいの試行で応答を返してくれます
一度でも応答を返すとあとは普通に応答を返します
iisresetコマンド等で再起動しても返しますサーバーを再起動すると元(応答を返さない状態)に戻ります
「起動が遅い」等で調べると
<generatePublisherEvidence enabled="false"/>
が出てきたので試してみましたが変わりませんでした(v4以降は関係ないという記述もありましたし、今はサーバーをインターネットにつないでいる状態ですが変化なしです)①の各ステップでログを出力するようにしたところ、サードパーティ製ライブラリの初期化周辺で止まっているようなのですが、止まる箇所は固定ではありませんでした(ログは毎回flushして閉じているので多分止まる直前を示していると思います)
という感じでして途方に暮れています
原因や回避策があれば教えていただけますでしょうか