内部服务器错误api /帐户/注册

时间:2014-03-14 14:34:03

标签: c# asp.net-web-api2

我在发布信息时发现内部服务器错误,以便在Web API 2中注册个人帐户。它发生在client.PostAsync上。 api / account / register与创建Web API 2项目时使用个人帐户时创建的内容不同。

var handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;
handler.PreAuthenticate = true;
handler.ClientCertificateOptions = ClientCertificateOption.Automatic;

handler.Credentials = new NetworkCredential("<user>", "<pass>");

HttpClient client = new HttpClient(handler);
client.BaseAddress = new Uri("http://localhost/<dev_site>/");
client.DefaultRequestHeaders.Accept.Add(
        new MediaTypeWithQualityHeaderValue("application/json"));
var rbm = new RegisterBindingModel();
rbm.UserName = "<user>";
rbm.Password = "memememe";
rbm.ConfirmPassword = "memememe";

MediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter();.
HttpContent content = new ObjectContent<RegisterBindingModel>(rbm, jsonFormatter);

var resp = client.PostAsync("api/account/register", content).Result;


resp value = {StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Pragma: no-cache
  Cache-Control: no-cache
  Date: Fri, 14 Mar 2014 14:32:49 GMT
  Server: Microsoft-IIS/7.5
  X-AspNet-Version: 4.0.30319
  X-Powered-By: ASP.NET
  Content-Length: 6065
  Content-Type: application/json; charset=utf-8
  Expires: -1
}}

我应该提到的另一件事是,这是来自另一个挂在Web API应用程序中的.NET MVC应用程序。我尝试使用完全相同的代码,在visual studio中调试期间使用localhost和端口号,并且它在Web API项目的homecontroller中完全正常工作。因此,当从本身以外的localhost和visual studio调试器调用时,它会抛出一个内部服务器错误,但是当它在其中时,它正在按预期工作。

2 个答案:

答案 0 :(得分:2)

运行Azure myTodo示例代码时遇到了同样的错误。一般错误非常令人沮丧。事实证明,服务器上的register方法发生了错误:

 IdentityResult result = await this.UserManager.CreateAsync(user, model.Password);

如果你在它周围添加一个try / catch块并通过它进行调试,它会告诉你更多细节。就我而言,我收到了如下错误消息:

  

从中获取提供者信息时发生错误   数据库。这可能是由实体框架使用不正确引起的   连接字符串。检查内部异常以获取详细信息并确保   连接字符串是正确的。

在我的情况下,这确实是一个连接字符串问题。

答案 1 :(得分:0)

事实证明,在我的情况下,API控制器中的一个方法具有公共访问修饰符。我改为私人和Bang!头痛不见了。