ASP.NETで唐突にデバッグできなくなったときの対処法

半日潰してしまった。
あいかわらずこのあたりは情報の質が低い。
ちゃんと解決しているので安心して読んでほしい。





現象




ある日を境に全くデバッグができなくなる。
一瞬デバッガが立ち上がったように見えるがすぐに終了してしまう。


たまに起動すらできない。

「IIS Expressサーバーを起動できません。」
「プロセスID xxxxは実行されていません。」
と表示される。


環境



確認したときの環境

Windows10
VisualStudio2017
.NET Framework 4.7.2



いろいろ再起動 & リビルド




OSを再起動
プロジェクトをクリーン → リビルド

改善せず



IISExpressの設定を削除



C:\Users\XXXX\Documents\IISExpress

に残っている設定がまずいようだ。
C:\Users\XXXX\Documents\IISExpress\config
C:\Users\XXXX\Documents\IISExpress\Logs
C:\Users\XXXX\Documents\IISExpress\TraceLogFiles

をまるごと削除

改善せず


Visual Studio からデバッグする場合
プロジェクトディレクトリ/.vs/config/applicationhost.config
に設定が記述されているようだ。

https://code.i-harness.com/ja/q/f23466

ProjectDirectory\.vs\config\applicationhost.config

これを削除。

改善せず。



環境変数に値を設定する



https://qiita.com/07JP27/items/89bbbbf2cd5405e96454
https://stackoverflow.com/questions/19472682/asp-net-mvc5-iis-express-unable-to-debug-code-not-running

Winキー → "システム環境変数の編集"と入力 → 環境変数
→ システム環境変数 → 追加

変数名:_CSRUN_DISABLE_WORKAROUNDS
変数値:1

改善せず。
これが何を示しているのか。一体どういう経緯でこの結論に至ったのかがわからない。あまりやらないほうがいいかもしれない。



Visual Studioのアップデート



更新が来ていたので念の為アップデートしてみる。

改善せず



動いていた状態のソースで試してみる



このあたりでソースを疑ってみる。問題になりそうな部分はないがweb.configがちょっと書き換わっている部分が悪さをしているのかもしれない。

.

..

...同様のエラーが出たのでソースの問題ではないようだ。




新規プロジェクトの作成



さらに原因の切り分けをするために新規でウェブアプリケーションを作成する。
すると問題なくデバッグ実行ができた。
違いを確認してみるとポート番号が違う。

ポート周りが怪しい気がする。



デバッグ時のポート番号の変更



プロジェクトのプロパティ → Web → サーバー → プロジェクトのURL
のポート番号を変更する

→ 仮想ディレクトリの作成

http://localhost:51538/

http://localhost:51539/

.vs/applicationhostに追記されている。
前の設定は消してもそのままでも問題ない。

これで動作が確認できた。

恐らくどこかに不正な設定が残っているものと思われるがどこかはさっぱりわからない

ちなみにこの後エラーメッセージなどを確認するために不正な状態に戻してみたがまた違う問題が出ていた...

IIS Expressの再インストールは試していない。というかどこからやるんだろうか?



参考




Visual Studio で ASP.NET アプリケーションをデバッグします。
https://docs.microsoft.com/ja-jp/visualstudio/debugger/how-to-enable-debugging-for-aspnet-applications?view=vs-2017

IIS Express サーバーを起動できませんとエラーが出た時の復旧方法
https://opcdiary.net/?p=7405

2018年10月4日木曜日