Reputation: 125
When i try to debug this code :
// POST: api/Events
[HttpPost]
public async Task<IActionResult> PostEvent([FromBody] object savedEvent)
{
Event addedEvent = JsonConvert.DeserializeObject<Event>(savedEvent.ToString());
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
Cant hit this line :
Event addedEvent = JsonConvert.DeserializeObject<Event>(savedEvent.ToString());
Debuger reacts like i hit continue but code past doesnt execute. Im really confused. Thanks for your help.
Upvotes: 8
Views: 17788
Reputation: 766
Wow, I finally solved it. In my case it was incorrectly registered service in DI, just for example:
services.AddScoped<AccountService>(); << 'Fixed my problem'
services.AddScoped<NI.JwtBearerAuth.IAccountService, AccountService>(); << 'Confused me, thought I had already registered it, but as you see, this is other implementation'
After that I was able to hit breakpoint in controller. So, my controller wasn't registered because of this service.
Upvotes: 0
Reputation: 6829
You are probably running your application in the "Release" mode instead of "Debug".
You can't set breakpoints in "Release mode" (most of the times).
What is in a symbol (.pdb) file? The exact contents of symbol files will vary from language to language and based on your compiler settings, but at a very high level they are the record of how the compiler turned your source code into machine code that the processor executes.
Upvotes: 3
Reputation: 791
What about trying:
System.Diagnostics.Debugger.Launch();
Launches and attaches a debugger to the process. To at least make sure you're getting in there.
Upvotes: 1
Reputation: 286
Try removing the async part of the action. This isn't a permanent solution, but it might help you debug. Another thing I'd suggest is to put a try catch around the code in your action. It's possible your deserialization is failing and throwing an exception that for whatever reason, the debugger isn't catching.
// POST: api/Events
[HttpPost]
public ActionResult PostEvent([FromBody] object savedEvent)
{
Event addedEvent = JsonConvert.DeserializeObject<Event>(savedEvent.ToString());
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
Upvotes: 4
Reputation: 1
I've found that sometimes cleaning and rebuilding helps with flakey breakpoints. If that doesn't help, restarting Visual Studio can also help (especially with 2015, at least in my experience).
Beyond that, I've also had issues with memory leaks causing my app to just enter reach certain parts of my code, though that is usually accompanied with the app crashing.
You didn't mention any errors or crashes occurring, just the code not executing, so I'm not sure if the memory leak would be causing your issue.
Upvotes: 0
Reputation: 3867
Couple of things you may try
1) Make sure you are running in Debug mode (not in release)
2) Make sure you are running the latest code with all symbols loaded (hovering over the break point can give you extra information of why its disabled)
Upvotes: 6