Story :
ASPX / MVC / WebAPI, is not hitting the breakpoint. Normally when you compile the PRJ the dlls built on bin/debug folder.. Once you navigate to website, the IIS copies all dlls to C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
and use it from there. more Understanding ASP.NET Dynamic Compilation
Cause :
Sometimes, the website DLLs cant be overwritten, because used by IIS Worker (w3wp.exe), at C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
as result you getting old .pdb that not map with your current source code.
solution :
shadowCopyBinAssemblies : Optional Boolean attribute. Sets a Boolean value indicating whether the assemblies of an application in the Bin directory are shadow copied to the application’s ASP.NET Temporary Files directory.
1
2
3
4
5
//src - https://stackoverflow.com/a/49677908
<system.web>
<hostingenvironment shadowcopybinassemblies="false"></hostingenvironment>
</system.web>
alternative way -stop iis (end w3wp.exe process) -rebuild -start iis
btw one reason this occurring is when running more than one application pools, stop the ones you dont use it, by IISManager
origin - https://www.pipiscrew.com/?p=18412 iis-symbols-not-loaded