我有一个 ASP.NET 网站,其中包含许多处理程序 (.ashx)。是否可以从独立的 C# REST API (Web API) 调用该处理程序?或者它是否需要位于同一个解决方案文件中?
例如,我的处理程序文件包含以下代码
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>
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/