我在ASP.NET-MVC5框架中编写了一个简单的Web服务。我面临的问题是自定义状态代码和响应消息。
我已经尝试了很多在这里找到答案,但我在这里找到的解决方案并不适用于我。
我使用标准的try / catch方法来处理我的错误。当catch块收到错误时,它会向客户端发送一个响应,其中包含自定义错误代码和JSON文件以及有关错误/异常的一些其他信息。
当我在IIS Express上运行我的应用程序时,它在我从同一服务器发送请求时工作正常。当我在开发环境上的IIS 7.5和生产环境的IIS 8.5上运行应用程序时,会出现同样的情况。但是当客户端尝试向我的应用程序发送请求时会出现问题,如果应用程序代码中出现错误,客户端只会收到400状态代码的默认错误页面。
我尝试将CustomError
设置为不同的模式,也尝试了与HttpErrors
节点等的不同组合。
对我不起作用。如果CustomError
模式设置为ON
,则它根本不再为我工作 - 即使是本地请求也是如此。
这就是我向客户发送回复的方式:
试
{} catch() {
Response.StatusCode = 406;
StringBuilder errorMessage = new StringBuilder();
//在这里我生成要通过响应发送的json文件
string exception = errorMessage.ToString();
返回Json(例外,JsonRequestBehavior.AllowGet);
}
有没有办法为客户提供明显的响应信息?应用程序没有使用自定义错误页面并重定向到它们?
P.S。在SO中我发现了很多类似的问题,但对我的问题没有直接的答案。我在这里找到的问题和问题之间的主要区别是自定义错误页面。但对我而言,只要在出现错误/异常的情况下发送json,并将其显示在客户端的响应内容中。
答案 0 :(得分:0)
我认为你的问题是different
而不是你在想......我以前遇到过这个问题......就我而言,它与IIS re-register with asp.net
...
尝试以下流程
command prompt
中的
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis -i
请务必运行命令提示符
as administrator
如果仍未解决,请尝试在below thread