c# - 是否可以从 C# WebApi 重用/调用 C# 网站中的处理程序?

标签 c# asp.net asp.net-web-api ashx

我有一个 ASP.NET 网站,其中包含许多处理程序 (.ashx)。是否可以从独立的 C# REST API (Web API) 调用该处理程序?或者它是否需要位于同一个解决方案文件中?

enter image description here

例如,我的处理程序文件包含以下代码

public override void ProcessRequest(HttpContext context)
        {

            base.ProcessRequest(context);
            context.Response.ContentType = "text/xml;charset=utf-8";
            try
            {
                string action = context.Request["action"] ?? "";
                switch (action.ToUpper())
                {
                    case GETDATA:
                        GetDataActions(context);
                        break;

                    case SETDATA:
                        SetDataActions(context);
                        break;
                    default:
                        throw new Exception("");
                }
            }
            catch (Exception genericException)
            {
                context.Response.StatusCode = 500;
                WriteResponse(context, xError.ToString());
            }
        }

我想从我的 WEB API Controller 调用 SETDATA 操作。 谁能指导我吗?

最佳答案

您可以通过像 WebApi 一样调用处理程序来重用它们。

确保您已在 .config 文件中配置处理程序并为它们定义路由。

<httpHandlers>
    <add verb="[verb list]" path="[path/wildcard]" type="[COM+ Class], [Assembly]" validate="[true/false]" />
    <remove verb="[verb list]" path="[path/wildcard]" />
    <clear />
</httpHandlers>

在此处查找更多信息 https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/aspnet/development/http-modules-handlers

ANOTHER OPTION: You can reuse the handlers by packaging them as a library then use it in different projects. A nugget package for example.

关于c# - 是否可以从 C# WebApi 重用/调用 C# 网站中的处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72889833/

相关文章:

c# - 获取 Azure BlockBlob 内容类型

c# - 如何在 C# 中手动构建 SOAP 信封?

asp.net - IIS 上的远程调试 - 拒绝访问的噩梦!

c# - 如何将这些 LINQ 结果加载到我的 ViewModel 类中?

c# - Entity Framework 多对多关系表创建 "backwards"

asp.net-web-api - 从响应中删除 header

c# - 如何在具有不同返回类型的 Linq 表达式之间进行转换?

c# - oledb 导入 csv 文件 - 奇怪的字符 :˥«¿ added

asp.net - [ValidateModel] 和 ASP.NET 中有效状态检查之间有什么区别?

当参数值中使用 MS-DOS 保留名称时,IIS 给出 404