0

我在使用 asp.net WebApi 项目时遇到了一些麻烦。我正在使用 rtm 位。

在我的 api 控制器中,我有这个

[HttpPut]
public Business Update([FromBody]Business business)
{
    try
    {
        if (business.Id == Guid.Empty)
        {
            throw new HttpResponseException(HttpStatusCode.BadRequest);
        }

        return _repository.Update(business);

    }
    catch (Exception ex)
    {
        log4net.ILog log = log4net.LogManager.GetLogger(this.GetType());
        log.Info(string.Format("Update Error Business"));
        log.Info(ex);
        throw;
    }
}

我的 mvc4 应用程序我正在从我的应用程序的存储库中调用此 api 方法

public static HttpResponseMessage Put(string apiMethod,string baseAddress,object objectData)
{
    var myHttpClient = new HttpClient
    {
        BaseAddress = new Uri(baseAddress)
    };
    myHttpClient.DefaultRequestHeaders.Authorization = new BasicAuthenticationHeaderValue("username", "Password1");
    myHttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    var put = myHttpClient.PutAsJsonAsync(apiMethod, objectData);
    var x = put.Result;
    return x;
}

我不断收到服务器 500 错误。我在 api 控制器上有一个断点,它没有被击中。如果从 3rd 方工具手动调用 api,则会调用 api。

我已经检查了所有基本的东西,但似乎无法弄清楚发生了什么。

有人有任何提示我可以用来找出问题所在吗?

4

1 回答 1

0

我也陷入了类似的情况。不确定它是否与您的情况完全相同。通常 PUT/DELETE 有一些问题。这是我的问题(您可以决定它是否与您的问题相似): PUT 和 DELETE 在 Windows 2008 Server IIS 7 和 7.5 中为 asp.net webapi 返回 404

于 2012-08-30T03:44:41.223 回答