0

I'm integrating an ASP.NET Core 6 MVC website.

We have a jQuery ajax post call

$.ajax({
    type: 'POST',
    url: url, // Patch
    data: { "dict": JSON.stringify(dict) }
}).done(function (response) {
    $('#resultSection').css('display', '');
    $('#errorModal').modal('hide');

}).fail(function (jqXHR, textStatus, errorThrown) {
    console.log(jqXHR);
    $('#errorMessage').html(jqXHR.responseJSON.message);
    $('#errorSection').css('display', '');
    $('#errorModal').modal('hide');
    var errSection = document.getElementById('errorSection');
    errSection.scrollIntoView();
});

The method it calls can be simplified as

public IActionResult Patch(string dict)
{
    try
    {   
        var list = JsonConvert.DeserializeObject<List<KeyValuePair<string, string>>>(dict);
        // list => dicKeyPartNumberPairs
        _dao.InsertDigitalAttaches(dicKeyPartNumberPairs);

        return StatusCode(200, new BasicResponse
        {
            isSuccess = "1",
            message = "Import Completed"
        });
    }
    catch (Exception ex)
    {
        _logger.LogError(ex.Message);

        return StatusCode(500, new BasicResponse
        {
            isSuccess = "0",
            message = "An unexpected error occurs, please, reach out to ..."
        }); 
    }
}

public class BasicResponse
{
    public string? isSuccess { get; set; }
    public string message { get; set; }
}

When we test Patch with Visual Studio, no matter return 200 or 500 the corresponding done and fail function can be conducted correctly.

However, when we publish this to windows server 2019 + IIS 10. If we return 500, the StatusCode object seems to be replaced by a fixed formatted content that leads our fail function out of order.

Running Visual Studio, the response I got is

HTTP/1.1 500 Internal Server Error
Content-Type: application/json; charset=utf-8
Date: Tue, 30 May 2023 06:01:05 GMT
Server: Kestrel
Set-Cookie: .AspNetCore.Mvc.CookieTempDataProvider=chunks-2; path=/; samesite=lax; httponly
Set-Cookie: .AspNetCore.Mvc.CookieTempDataProviderC1=CfDJ8KoY9S8Jp9ZFgwT85XuiJe4h-nBFrYSgB4rlcPpfenAXMfnnl1z851TcK2wkDwihoUX_YodlwPjChm1fnFg0PiKV7dZ5PjFIBOJSuLfMDnggzX7BBmDyGaBXP7agSMW8EcSUcR6jZkJN2KdgmE0R5orvBJgYOOhngimpid-keEOTORrG-Nr1SQDAq14a121CwZcm7kStctZ-qef7PPLDrqiKf8NNZPQfDFX6k7huuEfCyQlal0NoCCuoxbH2rTLHD01qec_G1X6ZxCP4Sfol8R4l4WWgBcd9ea4HVAyxDSFB0twXkW726I7QUoa8Ec_2IVOXKqRGEzsc8_1odSE5hefdY7XDX4htS_ulYDCtkoHo294dfnm63yrOimQgNmdUvmPJ-0Y_F1Tj37faWEt6eUVVisqlnzDPd-rCfrp2RPuEZBLuoWgS_DosbOZpJM_9vEO7bNIeMIQ7S_OXnZoMV8kA3Y5bYRkY38E5luSCdJ_thQd5eFhw5j0__PnEq4TtD9bV7wpaYbnC4vgJR26-oMm1GUP19KxmsBUryMmyAJCmE-K5_2qq3v01JAwFK0HWeYcfJRmkmXPQMkirbg9168LmpBTG_39NmoLy8K10eQkSTgOt2bnDNh2izATyzLq0gHfINEkpxP54660MYAxuXtVWikZ5ksnKZ4ZLw4vjK8g8WUJFRNhYqQeACUyWl-0UXVYSd5ywunvx-cedWDzGMnuDciw5y2rxis5n1CzTMcaH-1VQHKKHE4d1lGkwL9gNDa6iCmz7-9FLh3CGaSmiBYXf48cZ3mjfImCJQfZjJtURRbaf8EwmA_UyOqXUa5MRNFYL_PmYtmwcSoGyrPY7klDnIbJLW_qF_qwiATGoRmLBODclOTvJfDFns6_HBMOyYLLdOLhTiuj8JveCOca0WTuU6Bo5PiKaTRuSgESpaFECnMh3_ok9lDcKOpqNHY71lL5V7L8FBfo4T_Oqk6JdGT4LUwzbGB2Izr-7QdSHLiEQe41gAu-jF7gvNfZVjXYcvkr4nGjUsxDYvP0yIQZUI3ha1ErwNTwPopilW_VidaAWLdg55WMLBOcKrI3X3UGaUuWJ8hCBwB-6BxPdYb2SQO4fjtVio1KwJhod_CY6_pGaWpxqEd6YlEsXViEa9jRfj1HKB1DuFmRftmuahpqaeBX-0qnrlk5hMgpya7fD358BJp3GKMa6qNyjbvUDGu2uDFppUZoLkrqlElydIrlSwjiAIAH1vd4pV9kvBOl6RWBSICfPpIz4hYTio4tZYGkuQaJNVovdrvLSD3w1inMFoEX4At_RzZ9v2vAqlXdVkQkMz14fOqAM0Ll72ZptIU-sdR6lyIiAx8mOxhqA6aXCzeFzlCVyTL3AGaZq6sDpd1c8Bh4lWReVWFK4AQ6i8I2jOPjRX-ricUVp4bHIqRp96QIB3XLoWDISVJXjQ9OkFNR4gDOWaitBBPfa0CmnzeMAr0f78b4NmB0UCbZQUfpARrENw82Hx5-8_V5aaHEk3QGJp5Pn_2QcATdsZC44NYusyZCv2pve-woYKBb3Qf317nRVARVWMfMGZcp8sBl6sE9VZmyiUfDwcW10ZZbRsBSf-ZC4HNTjvjvWsaN55aSuZUVRMpc3iORMTFGCsKQmVD2BXWSj4y-OsrEYBHE7TTfp7WscoGjRufb5mIqy9iX3wzjCM4ITUbOzjbIqdT5IxpVQaJ-yhhKxzjbk-jqnAlmXEiAKbUtMqSSmy_MMOUy2qCIkFkiGoHPhLK6cvNDVrs8r-cd65zcaXgpdNEqUv9RdKwu2WvM96ThYXDi_FerYHTit8MdIs3mJFA-iwWZYOiLNwU7m610kMho2dv9mMqz0jBL9tQV2PYwqPsTW2r1d5krXOdMaiGHH2xkPdCUZcXWCfWOTFL09JOaDFTY-tHOb2j5gWVRL6yPp_FjTvBhxFJXqL_wp_Drie46jjr4e17VFLVDli8R_tvy2U_TWMTmT8i9bfO-zN90cTUsoq8Fh_mlzYpWt567TYdJviAoxu0LIUp3RT1H5U-EeEihQbdZw2SsqG9OHCM6HLbzZhWP85n_A2yHouvuD1hnzz9ajrXdFSi7kDleZsZ4HIGf3SMuCIvDLO47PWo6hIMd4AMU0Q1yWAq7j7EUdsBxKtdiLjD57ZgmDUHMlrHsVjFh4SXiGUGamK5AzI5BeUguZ-gDu8QYqoz9vf943WCbr3Z2QvTfC65Wd97xR6JdgF2WMNUHyNcQjyQ4mEkD4nl6sZk8xQR5nyQUDrXQFuVqZmR4HaSRLt7wmKXkvp3JL-tZRcnMGDX4Y5yt4B-Q0f4WcFZUB-bpNBbnQGclSBWRnCSsj3eg_j0WTSqmzsKbO5HoifiLMPvOjN3UG5okRukFmJoxSxegHpUgkTiywVp6-mjleDYNyEJEBqKPNMvB_sWtU6AcnAQV_vEU-vqYwM-Us1on0qCsr7gruGuX7yy8Wlmuu8RqpwpwWmbLdeW_eOncgJ3syuRQkvsVkJzcCxsrES3JqK2Kefv9tqp8fv-KgKt1eyvMg4zaFlH7tQhE58e043ueRDMk4SzH9ulZhr6Lsy9xPbxHV1ZWAD8_ntgj_KYG6Mr8IPw85YJUHAdtGsrCqIxNjgo9E_8-u42tm7ZAXxjaMSHmytQgUhpfCw0qtmiKQoONpTVh1TdFv36OI8bQrnPjtMrHfpp41jxDQlYF2LQ51x9lRdMK3NPaOSSNvJsQomY3E7DRCMA-9vKmCYSLT1kVqR2sRqGDN0KXGXQVre0x1QnRVCHhwDsyeiuPEFdAPudreyggbsjvIi_c490_ArahwoJYPQXX5irMy0hSlFrGKtsU4Qzb8eD-HuwNpsXI3ncsxvvCJs9Pmcyrf0LaqdQw70GYcJYUA1Jby-WkImYZuqTYi7OqRl66tsC00SN11Y9-6WyOZXzfP2HZOokHdBxnIwd15zqQQZkRHJseXB5UH8E5ohFje-nKisL0AGrWMVC07SlF98gVU_c_mSukbZktfWDrWx_pwKilWsJCd0WvkKouyXmd0vSYGx_UtfyvmoPD2Z5Ecj2CZxW5l8s-pHUo7I8-GTrA-NUYCqR2QfOdkobgGpo-lmDR2T_xR2kgcGSJmPmLEysElsjcCrgudsvAeOP7i4nhTdEIaHRhrjfyRwjeEsEwR_dzxajLX2Xt9DPqT_p4a09yB8hCFdkj1P3uwn0wdg3I-aBrljDUfBxZweEFnRZXs8ac4_oVJ1S0Bm3zSgaHqV7NryeaZaVB3F1k05YjfIuYQ67w2t5L_Revjv5Ax-t0jcmpnqBKrbhxo-wP9yCPXJrRsngJn7lE1PvxeVTcgTlC9WmufZOX9BlL9ZBuSxFkcXhQ17CQR36UMf7esSAtApuvJxRqILNmDSCkWfGK8a7A-mVZu9e2yQqY8spFxvPiSMIiONDY726zCQ9FEW2AInWxSTjgED5d5EqTapHJycRU48csWIWRJWbseS1IACbjIu5KXbIQVbbYOenHMu8yQ-rMajeZ-jdyJCWfQsuer4pv-R-lSt_oxqjmhZKQc2a-J7is1NEDDfAdewPk1MjnJY2ww4uTAdIJhGP3btZvx5YZ85wSGmlkv1UGSZuDxeGgIfFDXV6f-llVd53c64IlBDRddfkDu6Ignp7_GDrr4AGWFJ0pwQPq6kiBni-2MSIvZvR9kdbhVL4Er5LohJ1jfxo_pABFFKGrfNATsEsxzWskK3kdBnbANhyNr-mk9Tl0skIfHUypspa4u7_ZiodLvUqLFxSJoGWxg-uWeRpWtRnhWJu26adsmaDX3LhF8wN7_cXUOCdGPd8c9QxO7mM6LWEf7n6QiYCi8_H__YCBZmwdgE1niDt-Aw5DrndRG9CEUSIz_3WSG3Ns2xt6LOHMHP35mXyzSKUf18ZbYp5zC_VK90z3ZHD7OP9I7jMsEeiFfJO2te0Gnh-pCUMrHVJyqp553cICCZcULKUJ9ptqN; path=/; samesite=lax; httponly
Set-Cookie: .AspNetCore.Mvc.CookieTempDataProviderC2=JRFdCZvqczu37uE_rVYi7_HCl4SHJE4hzzvEh-GLUA-GMTKuvwIUI0Jnxeis7dShmAezMKOX0nGHS6e-xvSUrTIYvMU-W4s2Wntzph2rzbVZcteOSD5QrrfoIStIb1S8ROkjGsbkOR2s9QZh0ceX7CpNxCfIsa2zDQVhjtJfjsYGTlgfsPwFxTzV-1vZ4kwUXZYq2nGdMEuzRE46In_TDO2Putfy4pFgbARUdEV-82EQ9JowT2FrPlXYPe1-vWreRN3kRqC0Han6QezlBQ2U9MnDojGBdk0gRTOXjDhdDkN4EE3HKGAn7lz0e5TGUPlmk_HmKcf_UMAY4o5YzkvnVt6m3JH13HlPCmIa3m8HepWeeEDYf6rPKccKwd5JU7JOTs83rAn2q7zEFHv_n03q7pIxdZ7urZPkr4i1OK_Ff2GE4t_YTVKVjI6X4xxH93rs5QXnp3paVZjjjinwbDzQTejhwckHodo7Qqr78kiqaE8dyR1JpmuMobo-2CjnMjR4p-hDjmkJHr2CcdjU575uw9yLfZzU5aKgbFQuO4s7vSjmYx_pzXQYk5vFyWsVTOVrycLNFX5Zuv22OroCp6YcdZpjHZp7qVeup5lRmsTpETjjz37x9HfRfRJwsmZpG0CINGATWKLbm5wREygwVicUdgeO8ukcVkXzSHtzMAXIWYi1KfmQRxmpnpojw-wIgNeW2Bt5Aq2l3ZGSErSK-B2flkyL2scSvk_qKaart5pZmasRQFjMNqsPrIkjrjczMgWyWT2SB1sFTSQrkt9OHQipAJpFidmfwwsHQEtabY0LXhn0nJYYvCh2bblpAs5UZYy1lRrE99z7eu2wmCzND-bmasRiA9Rh60qbnidUKa6-9keu-o8q0dWVSTV8IXOXCBJ2Ee-EnJDSu37gNwRqH9l5XFVl5g7OzNGm5oa2dgYfRqE64Z9Bb0HHty6hdf5Kw5kjVSdRTLtJoyNOpmthmZuKffQNf4uF-VCFeuv9D-cV7atewWv1Ea_50F7UgQLtfDQvvdz_nvFbMsMzvzfYeWIErnVVT03yV5WQFX_b6bW6XhP5JRe651te86F0jXhelu5UdRmc049DdgoWqqqZZU8nwK6nESWJbqG6zsG6Z-CvTqzvP0oy5VzIakFEL_ucslRjYr-1ViEP-Dqvgx0Xp9eFQA-3yp5FTuVWLwQTGZvanEAwWXC9NddqSL9uMLy4Bx8U-1Z3K6AXKpYqefysD_0PJTtw24AriOA91oXiMzjWpwJYeMmXUH4JTOvn1Z85lpg35HneDVbroAX8sniBuLJp-Wg-uvxBmcW1OFwfE-cgPgtRLJjowWtkW42oSpcPOJO0JmP9zAkihIuaydn9y4aGNV1rqP3CYW2_p8UtoC2H5eb6LOe8OnFuRCimoICUjok3cB8Rri34P38ecdT98P9S_5VqmCDiQp2d9KIORILA3cQrNxO9DhBbK3bBZBGqF2Cte9LgtVUvAQdP6QvKicChchX7TzBO_eSSBqG5w1vMETqBTA5Nlkp0g0DcZUpm3NX6eW5W_rN1eNacyQkv9XZ1KZ8H9lGf1ktEOmUbXuIAiyHeqywaY9wbtgIWPeQsjZBiY3HegcHAgwc5rmg40t2VPWwlMqj2UhpnFTcKa8cDN39tcdd51MLTP4xKK-lWVWjSBgX7TCd2krbms2QQecEL8YLw0LN4lwnGckLOCt4dFg0VaHa5-9slcOIos3DcpmbPPsXKQM8lgUaLZisWTUvSPF3LRjZANJhsCgWPpHRl52pJeRPEjex2oSQUZnNHj68BjRM88TFvDNiNpNm1-pIRsL6smt1PUaP0St99LIpvDUa65nn76mc5B9BZG4zfaLMKBRBnTgnXqwnpT3nM1uabL4IVpoyVPxUUBCdbLDwB9qeKQYXAhgKLZ-jNDTpJTSaV5qUjF5z7f4obW7RptlHeeF4-tH3FoyVjT_Ok_opfw5dPHWYTpx-dHtzqr6j-kg_IWMYTa_P6arrSM1rPhLbATCzQn49W53J4pafPqfo2Lce2ZdEH8rM23yvyjrP30A; path=/; samesite=lax; httponly
Transfer-Encoding: chunked

79
{"isSuccess":"0","message":"An unexpected error occurs, please, reach out to the GIS OA3 team if the situation remains."}
0

But when hosting on the production server, the response I got is like

HTTP/1.1 500 Internal Server Error
Transfer-Encoding: chunked
Content-Type: text/html
Server: Microsoft-IIS/10.0
Strict-Transport-Security: max-age=2592000
Set-Cookie: .AspNetCore.Mvc.CookieTempDataProvider=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/PBR2ndPathWebsite; samesite=lax; httponly
X-Powered-By: ASP.NET
Date: Tue, 30 May 2023 06:22:46 GMT

4b8
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>500 - Internal server error.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;} 
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;} 
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} 
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
 <div class="content-container"><fieldset>
  <h2>500 - Internal server error.</h2>
  <h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3>
 </fieldset></div>
</div>
</body>
</html>

0

What can I do to make BasicResponse pass to client as it works with Visual Studio? Or is there a way at least I can pass message?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Circle Hsiao
  • 1,497
  • 4
  • 22
  • 37

0 Answers0