【问题标题】:Setting the HTTP response status code from ASMX Web Service从 ASMX Web 服务设置 HTTP 响应状态码
【发布时间】:2008-12-02 20:17:32
【问题描述】:

我知道 ASP.NET 有一个全局处理程序 Application_EndRequest 处理程序,我可以在其中更改 Context.Response.StatusCode,并将其设置为 200,这是我的愿望。

现在有了 asmx Web 服务,我不确定我应该把这个逻辑放在哪里。我知道我绝对对编写 ISAPI 过滤器不感兴趣,而且我并没有真正在 ASP.NET 中运行环境,所以 HTTPModule 对我来说可能也没用。

任何建议。在 WCF 中运行它会为我在 Web 服务上设置它提供一个更简单的机制吗?

【问题讨论】:

    标签: .net web-services http-status-codes


    【解决方案1】:

    虽然我无法想象你为什么需要这个:),但你可以尝试使用 WebService.HttpContext.Response 并在那里设置状态码。

    另外,我不确定,但 Global.asax 事件处理程序即使有 Web 服务请求也会执行,因此您仍然可以在那里使用您想要的。

    【讨论】:

    • 我在我的项目中没有看到 Global.asax 文件。这是我手动的东西吗
    • 是的,添加新的全局应用程序类
    • 看起来我可以轻松地为 Web 服务添加 Global.asax。谢谢。
    • taudep:无需添加“答案”——这不是论坛。添加答案以防万一您自己找到了解决方案,并希望将其提供给其他用户。您可以在 q.(编辑)中添加其他信息,并删除答案,以免它们“扩展”线程。
    • 我的服务最初并没有从 WebService 继承,它实现了我使用 wsdl.exe 工具生成的接口。我让服务从 WebService 继承,所以我可以访问上下文,然后添加了以下代码:this.Context.Response.StatusCode = 200,但它似乎没有改变任何东西。我在想在请求期间还有其他改变状态代码的东西,比如抛出异常时。我将尝试弄清楚如何将 global.asax 文件添加到该项目中——目前还没有
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2013-02-02
    相关资源
    最近更新 更多