gpt4 book ai didi

c# - 从 ajax 调用 WebApi 时如何调试 500 内部服务器错误?

转载 作者:可可西里 更新时间:2023-11-01 03:05:40 24 4
gpt4 key购买 nike

我在 MVC 4.5 WebApi 项目中收到 500 内部服务器错误。我可以使用 GET 和带有 Id 的 GET 成功调用我的网络服务。但是,当我发布文件时出现错误。我可以在 Application_BeginRequest() 中设置一个断点并确认我首先收到了一个 OPTIONS 请求,然后是 POST。 Controller 中的方法没有被调用,我已经向 Global.asax.cs 添加了一个 Application_Error() 方法,它也没有被调用。 html 页面正在执行 CORS,但我已经使用 ThinkTecture.IdentityModel 处理了它.我正在关注代码 here用于文件上传。

有什么想法吗?

这是客户端代码:

    <script type="text/javascript">
var UploadDocument = function () {
var url = sessionStorage.getItem("url");
var auth = sessionStorage.getItem("auth");
var data = new FormData();

jQuery.each($('#fileToUpload')[0].files, function (i, file) {
data.append('file-' + i, file);
});

jQuery.support.cors = true;
$.ajax({
type: "POST",
url: url,
data: data,
cache: false,
processData: false,
contentType: false,
//dataType: "json",
headers: { Authorization: 'Basic ' + auth },
crossDomain: true,
success: function (data, textStatus, jqXHR) {
alert('Success');
},
error: function (jqXHR, textStatus, errorThrown) { alert('Error: ' + textStatus + ' ' + errorThrown.message); }
});
};

</script>

我的 Controller 代码如下所示:

    public int Post(HttpPostedFileBase FileToUpload)
{
// Do stuff with the file
}

请求和响应如下所示:

Request URL:http://localhost:51234/api/TaxDocument
Request Method:POST
Status Code:500 Internal Server Error

Request Headers
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Authorization:Basic YmNhbGxlbjpuZWxsYWM=
Connection:keep-alive
Content-Length:2054044
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryIGzPKhvRVwFXbupu
Host:localhost:51234
Origin:http://localhost:52386
Referer:http://localhost:52386/Upload.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4

Response Headers:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://localhost:52386
Cache-Control:no-cache
Content-Length:1133
Content-Type:application/json; charset=utf-8
Date:Tue, 06 Nov 2012 21:10:23 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/8.0
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?QzpccHJvamVjdHNcU2F2ZU15VzJcU2F2ZU15VzIuV2Vic2VydmljZVxhcGlcVGF4RG9jdW1lbnQ=?=

最佳答案

要查看所有异常(exception)情况,请打开以下设置:

  • VS 2013(及以下版本):调试 -> 异常 -> CLR - 检查“抛出时”。
  • VS 2015:调试 -> Windows -> 异常设置 -> CLR

如果确实在您的代码之外抛出异常,您可能需要取消选中“工具->选项->调试->我的代码”选项。

关于c# - 从 ajax 调用 WebApi 时如何调试 500 内部服务器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13259774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com