locked
Web server returns 500 but still has "Operation completed " in Failed Request log. RRS feed

  • Question

  • User1905803165 posted

    I have developed a service that handles incoming orders, one at a time everythings works fine.

    But when there is two calls at the same time, the second call gets a response "500" as an internal server error.
    I do NOT see anything from my service, nothing in my logs, my application is not started at the webserver with data from call #2.

    Checking normal IIS logs I dont see any timeouts or errors. Empty.

    When I check the "Failed Request Log" I get this

    ModuleName ManagedPipelineHandler
    Notification EXECUTE_REQUEST_HANDLER
    HttpStatus 500
    HttpReason Internal Server Error
    ErrorCode The operation completed successfully (0x0)

    So there is an error that stops the IIS to handle call #2, BUT it was still "completed successfully".


    Any idea why it doesnt work? 

    The service is just getting a JSON package, that is split into different properties and then saved into a few rows of a database. Typically three rows.

    It does not block the system, its just normal database development as far as I can see. Done by me thousands of times before....

    Thursday, June 11, 2020 6:14 AM

All replies

  • User1535942433 posted

    Hi larka74,

    Accroding to your description, I suggest you could add try catch outside the code.You need to debug the application to get a more specify cause of a 500 error.

    • 500.0 - Module or ISAPI error occurred.
    • 500.11 - Application is shutting down on the web server.
    • 500.12 - Application is busy restarting on the web server.
    • 500.13 - Web server is too busy.
    • 500.15 - Direct requests for Global.asax are not allowed.
    • 500.19 - Configuration data is invalid.
    • 500.21 - Module not recognized.
    • 500.22 - An ASP.NET httpModules configuration does not apply in Managed Pipeline mode.
    • 500.23 - An ASP.NET httpHandlers configuration does not apply in Managed Pipeline mode.
    • 500.24 - An ASP.NET impersonation configuration does not apply in Managed Pipeline mode.
    • 500.50 - A rewrite error occurred during RQ_BEGIN_REQUEST notification handling. A configuration or inbound rule execution error occurred.(Note Here is where the distributed rules configuration is read for both inbound and outbound rules.)
    • 500.51 - A rewrite error occurred during GL_PRE_BEGIN_REQUEST notification handling. A global configuration or global rule execution error occurred.(Note Here is where the global rules configuration is read.)
    • 500.52 - A rewrite error occurred during RQ_SEND_RESPONSE notification handling. An outbound rule execution occurred.
    • 500.53 - A rewrite error occurred during RQ_RELEASE_REQUEST_STATE notification handling. An outbound rule execution error occurred. The rule is configured to be executed before the output user cache gets updated.
    • 500.100 - Internal ASP error.

    Best regards,

    Yijing Sun

    Friday, June 12, 2020 6:50 AM
  • User1905803165 posted

    The problem I have is that my application is NOT called at all.
    I have logs at the start, and try/catch around critical statements.
    Nothing. I get nothing in my logs. The second call is just not absorbed.

    The Failed Request Log is the only log where I get something, nothing in the regular Windows logs.
    And I only get 500.

    Googling I see that I should get a proper code like 500.x as you describe it above. But I only get 500.

    I am totally lost.

    This is a real challenge! 

    With two calls at the same time there should be allocated two threads from the threadpool? 
    My guess is that it might be something wrong there.
    But I do not know...

    Any ideas? Anyone?

    Thursday, June 18, 2020 11:31 PM
  • User753101303 posted

    Hi,

    You checked your IIS log? This is where you should find a 500.x code which might allow to better narrow down what happens.

    Each request should be processed on its own. A common design issue is to use static data making both requests to share the same data and possibly fails (but for now this is just a guess).

    Edit: for example https://stackify.com/how-to-interpret-iis-logs/, look at sc-status and sc-substatus

    Friday, June 19, 2020 4:57 PM