C# Web 服务路由控制器到已定义 URL

C# Web Services Routing Controller to Defined URL

我是 C# 的新手,致力于一点 Spike。我已经构建了一些 POCO OWIN 自托管服务,并正在尝试创建一个控制器,但各地的指南和文档似乎都指向了错误的方向。

我正在将默认映射添加到启动中的配置方法 class。然后在我的控制器中我有一个简单的 GET 方法。这就像一个魅力,当我使用我的启动路由中定义的 url 向它发送请求时,该方法被调用。但现在我需要设置第二个方法以供新 url 调用。

我不明白我错过了什么,我不明白什么,但我尝试的一切都不适合我:

控制器中的相关代码:

// GET api/ManagedService
    public string[] Get()
    {
        Start();
        return new string[]
        {
            "Job Processed."
        };
    }

我启动时的相关代码class:

HttpConfiguration config = new HttpConfiguration();
        config.EnableCors();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/start"
        );

所以在访问 api/{controller}/start 时我调用了我的 get 但我想用 api/{controller}/receiptandsend 调用不同的方法。

我不是 100% 确定我明白问题出在哪里,但请尝试将您的 routeTemplate 更改为 "api/{controller}/{action}"。您正在使用的 routeTemplate 假定您在每个控制器上都有一个名为 start 的操作(方法)。或者你可以尝试添加另一条路线,比如 name: "anotherOne", routeTemplate: "api/{controller}/receiptandsend" 但我认为这不是正确的方法。

编辑:顺便说一句,您的 Get 方法可能应该命名为其他名称,例如 StartJob 或其他名称,"Get" 似乎有点误导,因为您除了一条文本说您没有得到任何回复启动了一些其他进程。