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
?