Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何调试此Windows身份验证问题?_C#_Asp.net Mvc_Authentication_Asp.net Web Api_Windows Authentication - Fatal编程技术网

C# 如何调试此Windows身份验证问题?

C# 如何调试此Windows身份验证问题?,c#,asp.net-mvc,authentication,asp.net-web-api,windows-authentication,C#,Asp.net Mvc,Authentication,Asp.net Web Api,Windows Authentication,在将身份验证机制更改为Windows身份验证后,我在服务调用期间遇到异常。由于无法诊断,我有点失去了意志。这似乎是埋在MVC认证深处的一个非常普遍的错误 错误消息是: Response status code does not indicate success: 500 (Internal Server Error) 我的调用堆栈如下(出于隐私考虑,我的方法调用被删除): EnsureSuccessStatusCode由于调用返回的500而抛出 它没有击中我的任何代码。我在另一端的入口点上有断

在将身份验证机制更改为Windows身份验证后,我在服务调用期间遇到异常。由于无法诊断,我有点失去了意志。这似乎是埋在MVC认证深处的一个非常普遍的错误

错误消息是:

Response status code does not indicate success: 500 (Internal Server Error)
我的调用堆栈如下(出于隐私考虑,我的方法调用被删除):

EnsureSuccessStatusCode
由于调用返回的500而抛出

它没有击中我的任何代码。我在另一端的入口点上有断点。那么是什么导致了这一现象呢?如何调试它并获得足够的信息来修复它?我觉得一定有办法获得更多我不知道的信息

如果有人能告诉我如何诊断问题,我不一定需要解决方案。

以下是答案中的解决方案:

显然,我不建议将其用于生产代码(或作为使用异步代码的一种方式),但这将为调试服务调用提供准确的错误消息

实际上,在实际收到错误消息的五分钟内,错误被调试并修复。

以下是答案中的解决方案:

显然,我不建议将其用于生产代码(或作为使用异步代码的一种方式),但这将为调试服务调用提供准确的错误消息


实际上,错误在实际收到错误消息后的五分钟内被调试和修复。

在visual studio的内置web主机上运行时,您会遇到500个错误,还是在完全安装的IIS版本上运行时会看到这些错误?使用内置web主机运行。在我编写的原型应用程序中,一切都是这样工作的,遗憾的是,迁移到完整的IIS并不是一个选项,因为这是我们公司的工作方式……在visual studio的内置web主机上运行时,您会遇到500个错误吗?或者在完全安装的IIS版本上运行时,您会看到这些错误吗?使用内置web主机运行。在我编写的一个原型应用程序中,一切都是这样工作的,遗憾的是,迁移到完整的IIS并不是一个选项,因为这是我们公司的工作方式。。。
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +137
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +65
System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) +97
System.Web.Mvc.Async.<>c__DisplayClass37.<BeginInvokeAsynchronousActionMethod>b__36(IAsyncResult asyncResult) +17
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +48
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +50
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225
System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +48
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26
System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36
System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +137
<authentication mode="Windows" />
<authorization>
  <deny users="?" />
</authorization>
HttpClientHandler handler = new HttpClientHandler()
{
    UseDefaultCredentials = true
};

HttpClient client = new HttpClient(handler);
var result = await client.GetAsync(uri);
result.EnsureSuccessStatusCode();
if (!result.IsSuccessStatusCode)
{
    string msg = result.Content.ReadAsStringAsync().Result;
    throw new Exception(msg);
}

result.EnsureSuccessStatusCode();