从WCF服务调用Web API端点

时间:2015-08-23 08:54:53

标签: wcf

我正在尝试从我的WCF服务调用Web API端点,这是代码;

private static async Task RunAsync(string message)
    {
        var model = new MyModel   
        {
            Message = message
        };

        using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri("http://localhost/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            var response = await client.PostAsJsonAsync("api/RecordMessage", model);
        }
    }

我得到的回复是“404”。我可以从控制台应用程序发布消息,但我无法让它在我的WCF服务中运行它。我尝试将Expect100Continue设置为true,但似乎并非如此。

我的WCF托管在IIS中。有没有人遇到过同样的问题?

1 个答案:

答案 0 :(得分:0)

您正尝试POST到/api/RecordMessage端点。如果您使用的是默认路由配置:

routes.MapHttpRoute(
    name: "API Default",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

这意味着您必须拥有一个名为RecordMessageController的控制器,其中包含一个名为Post的方法:

public class RecordMessageController: ApiController
{
    public HttpResponseMessage Post()
    {
        ... That's the action that will be invoked when you call
        ... POST /api/RecordMessage
    }
}