如何调试在内存服务器上运行的 POST 请求

本文关键字:服务器 运行 请求 POST 内存 何调试 调试 | 更新日期: 2023-09-27 18:32:06

所以我正在尝试使用内存中的 Http 服务器测试我的 API,正如这篇博文所建议的那样:http://blogs.msdn.com/b/youssefm/archive/2013/01/28/writing-tests-for-an-asp-net-webapi-service.aspx

我的代码如下所示:

[TestMethod]
    public void AddNewCustomer()
    {
        config = new HttpConfiguration();
        WebApiConfig.Register(config);
        HttpServer server = new HttpServer(config);
        using (HttpMessageInvoker client = new HttpMessageInvoker(server))
        {
            using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/Customer"))
            {
                request.Content = new StringContent(@"{ ""Email"" : ""me@you.com"", ""Password"" : ""password"" }");
                request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                using (HttpResponseMessage response = client.SendAsync(request, CancellationToken.None).Result)
                {
                    Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
                }
            }
        };
    }

我尝试测试实际的API,它可以工作,当我发布客户时,它会正确响应。当我尝试用这个测试它时,响应。状态代码是"内部服务器错误"。

这很烦人,但更令人困惑的是,我发现自己无法调试实际出了什么问题 - 我不知道为什么它会在这个环境中出现此错误,而且我无法插入断点来测试发生了什么。

编辑:我的回复正文只是:

        "{'"Message'":'"An error has occurred.'"}"

有什么想法吗?

如何调试在内存服务器上运行的 POST 请求

只需在新的 HttpConfiguration() 之后添加以下内容

config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;