内部服务器错误api/account/register

本文关键字:account register api 服务器 错误 内部 | 更新日期: 2023-09-27 17:50:13

在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
}}

我应该提到的另一件事是,这是来自另一个。net MVC应用程序,它是钩到Web API应用程序。我尝试了完全相同的代码,在visual studio调试期间使用本地主机和端口号,它在Web API项目的home控制器中工作得很好。因此,当从自身和visual studio调试器之外的本地主机调用时,它会抛出内部服务器错误,但在内部时,它会按预期工作。

内部服务器错误api/account/register

我在运行Azure myTodo示例代码时遇到了相同的错误。通用错误非常令人沮丧。结果是错误发生在服务器上的注册方法:

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

如果你在它周围添加一个try/catch块并通过它进行调试,它会告诉你更多的细节。在我的例子中,我得到这样的错误消息:

获取提供程序信息时发生错误数据库。这可能是由于实体框架使用了不正确的连接字符串。检查内部异常的细节,并确保连接字符串是否正确

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

事实证明,在我的情况下,API控制器中的一个方法具有公共访问修饰符。我把它改成了隐私,然后砰!!头痛消失了。