gpt4 book ai didi

c# - 应用程序在远程计算机上时未定义异常

转载 作者:行者123 更新时间:2023-11-30 21:50:51 25 4
gpt4 key购买 nike

当我对 API 进行 $http 调用时,它从我的 MVC Controller 中抛出异常,我使用

记录返回到我的 Angular 代码的异常消息
.then(function success(response){ // success },
function error(response){ console.log(JSON.stringify(response);};})

这有效并显示自定义异常消息。但是,当我在 IIS 上的远程服务器上部署应用程序时,抛出异常时,response 参数始终为:

{"data":{"Message":"An error has occurred."},"status":500,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"url":...,"headers":{"Accept":"application/json, text/plain, */*"}},"statusText":"Internal Server Error"}

...基本上,它不包含自定义异常消息,它总是简单地显示“发生错误。”

这会不会是一个路由错误,也就是异常实际上没有到达我的 Angular 端?我这背后的逻辑是因为远程 URL 看起来像:

website.com/extension ,在我的本地是 website.com

最佳答案

默认情况下,出于安全原因,当从远程计算机访问时,完整的错误消息不会发送到客户端,因为它可能会泄露敏感数据。您可以通过将 customErrors 模式设置为 Off 来修改 web.config 以将详细信息返回到远程计算机。但是,如果不首先考虑安全隐患,您不应该这样做。

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>

更好的做法是向客户端提供一条通用错误消息“抱歉,发生意外错误!”并在日志中记录服务器上的实际错误消息。

关于c# - 应用程序在远程计算机上时未定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36066831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com