C# 带有有效xml字符串响应的Http状态代码

C# 带有有效xml字符串响应的Http状态代码,c#,http,http-status-codes,C#,Http,Http Status Codes,我正在尝试确定正确的状态代码,以便在响应不是空的情况下应用 当用户请求文件而该文件在服务器中不存在时。将以xml格式向用户返回一条错误消息。我有自己的日志,但我想尝试使它在IIS日志中也很明显 当前,IIS记录所有响应的状态200。但我想设置一个不同的状态码是服务器找不到文件 问题是在单元测试期间,我发现如果状态代码不是200,则响应为空。我试过(410206204)。因此,客户端不会收到错误消息 只是想知道是否有任何状态代码,我可以设置,并发送错误消息 我正在使用C#ASP.NET Web服务

我正在尝试确定正确的状态代码,以便在响应不是空的情况下应用

当用户请求文件而该文件在服务器中不存在时。将以xml格式向用户返回一条错误消息。我有自己的日志,但我想尝试使它在IIS日志中也很明显

当前,IIS记录所有响应的状态200。但我想设置一个不同的状态码是服务器找不到文件

问题是在单元测试期间,我发现如果状态代码不是200,则响应为空。我试过(410206204)。因此,客户端不会收到错误消息

只是想知道是否有任何状态代码,我可以设置,并发送错误消息

我正在使用C#ASP.NET Web服务


谢谢。

为什么要发送HTTP状态码而不是您自己的应用程序状态码

IIS日志永远不会记录以XML形式返回的代码,它只会记录从为您的web服务提供服务的服务器接收到的状态代码。就IIS而言,XML只是数据,除非您安装了特殊的处理程序或过滤器或其他东西。否则,IIS将只关注HTTP响应头的值

编辑:

当您手动设置HTTP状态代码时,服务器仍将在HTTP规范的指导原则下运行,该规范规定只有200将伴随完整的响应正文。

为什么要发送HTTP状态代码而不是您自己的应用程序状态代码

IIS日志永远不会记录以XML形式返回的代码,它只会记录从为您的web服务提供服务的服务器接收到的状态代码。就IIS而言,XML只是数据,除非您安装了特殊的处理程序或过滤器或其他东西。否则,IIS将只关注HTTP响应头的值

编辑:

当您手动设置HTTP状态代码时,服务器仍将按照HTTP规范的指导原则运行,该规范规定只有200将伴随完整的响应正文。

HTTP/1.1 404-未找到是合适的-大多数服务器将允许您返回内容,由于您经常希望返回用户可读的HTML页面,以表明您实际上没有访问真实页面。

HTTP/1.1 404-未找到是合适的-大多数服务器都允许您返回内容,因为您经常希望返回一个用户可读的HTML页面,以表明您实际上没有访问真正的页面。

我理解这一点,我有自己的应用程序状态代码和日志,但我也希望在IIS日志中显示错误。我试图在响应头中设置Http状态代码(410206204),但使用这些代码,服务器不会返回任何响应内容。因此,它要么是xml错误消息,要么是状态代码。我正在努力实现这两个目标。希望我是清楚的,我明白这一点,我有自己的应用程序状态代码和日志,但我想让错误在IIS日志中也很明显。我试图在响应头中设置Http状态代码(410206204),但使用这些代码,服务器不会返回任何响应内容。因此,它要么是xml错误消息,要么是状态代码。我正在努力实现这两个目标。希望我是清楚的