问题描述
我在媒体编码期间捕捉到以下异常:
catch (Microsoft.Azure.Management.Media.Models.ApiErrorException e)
{
var str1 = e.ToString();
var str2 = JsonConvert.SerializeObject(e);
}
我注意到在两个字符串中,ApiErrorException
的某些属性没有被捕获。例如,Body
类型的 Microsoft.Azure.Management.Media.Models.ApiError
不存在。
以下是 str2
的示例输出:
{
"ClassName":"Microsoft.Azure.Management.Media.Models.ApiErrorException","Message":"Operation returned an invalid status code 'BadRequest'","Data":null,"InnerException":null,"HelpURL":null,"StackTraceString":" at Microsoft.Azure.Management.Media.JobsOperations.CreateWithHttpMessagesAsync(String resourceGroupName,String accountName,String transformName,String jobName,Job parameters,Dictionary`2 customHeaders,CancellationToken cancellationToken)\r\n at Microsoft.Azure.Management.Media.JobsOperationsExtensions.CreateAsync(IJobsOperations operations,String resourceGroupName,CancellationToken cancellationToken)\r\n at ConsoleApp2.ProgramS.Main(String[] args) in C:\\Users\\xyz\\source\\repos\\ConsoleApp2\\ConsoleApp2\\ProgramS.cs:line 59","RemoteStackTraceString":null,"RemoteStackIndex":0,"ExceptionMethod":null,"HResult":-2146233088,"Source":"Microsoft.Azure.Management.Media","WatsonBuckets":null
}
不幸的是,这不是很有帮助,因为 BadRequest
可能因任何原因被抛出。我需要的是 Body
中的消息以及 Response
类型的 Microsoft.Rest.HttpResponseMessageWrapper
属性的序列化。
我的印象是 JsonConvert
会序列化所有内容,但显然并非如此。所以,自然的问题是,我如何让它序列化它们?另外,我实现了全局异常处理,现在我怀疑在我使用各种其他 Nuget 包的其他地方是否存在这个问题。是否可以从 JsonConvert
获得更详细的异常转储?
解决方法
我们正在调查其原因,但我们能够通过提交一个很长且包含特殊字符的资产名称来重现它。这可能与您看到的问题相同吗?您可以使用更简单的资产名称再次尝试您的代码吗?
如果您可以分享所使用的资产名称,那也会有所帮助。