UWP System.Runtime.Interop.COMException при отладке, но System.Exception при выпуске
Я сталкиваюсь со следующей проблемой
Мое решение настроено с использованием MVVM, как это.
- Приложение UWP -> Просмотр
- PCL для Windows Universal и.NET Framework 4.6 -> ViewModel
- PCL для Windows Universal и.NET Framework 4.6 -> модель
В View Project у меня есть сервис, который делает веб-звонки, используя Windows.Web.Http.HttpClient
, этот сервис внедряется в несколько моделей представления.
В представлении модели у меня есть попытка поймать блок, как это.
try
{
await webClientService.MakeACallAsync();
}
catch (System.Runtime.InteropServices.COMException e)
{
//web exceptions such as 404, 401, 500 etc
// code handling exceptions.
}
MakeACallAsync - это эта функция, но проблема не ограничивается только этим вызовом, это происходит и с другими подобными вызовами.
public async Task<string> MakeACallAsync(string username, string password)
{
var usernamepassword = $"{username}:{password}";
var bytes = Encoding.UTF8.GetBytes(usernamepassword);
var base64 = Convert.ToBase64String(bytes);
httpClient.DefaultRequestHeaders.Authorization = new HttpCredentialsHeaderValue("Basic", base64);
return await httpClient.GetStringAsync( a uri here );
}
Теперь, если служба выдает какие-либо исключения из-за ответа 404, 500 и т. Д., Я перехватываю эти исключения и обрабатываю их.
Это хорошо работает в Debug, но в Release исключения не выдаются как System.Runtime.InteropServices.COMException
но, как System.Exception
,
Кто-нибудь знает, почему это происходит?