-2

*System.Unauthorized Исключение

Exception = System.Net.WebException: Доступ к пути 'C: \ Windows \ system32 \ Inetsrv \ Dialer' отказано. ---> System.UnauthorizedAccessException: Доступ к пути 'c: \ windows \ system32 \ inetsrv \ Dialer' отрицается. в System.IO .__ Error.WinIOError (Int32 ERRORCODE, Строка maybeFullPath)
на System.IO.FileStream.Init (String путь, режим FileMode, FileAccess доступа, права Int32, Boolean useRights, Обменник доля, Int32 BufferSize, варианты FileOptions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath) в System.IO.FileStream..ctor (String путь, режим FileMode, FileAccess доступа, Обменник доля, Int32 BufferSize, опции FileOptions, String msgPath, Boolean bFromProxy) в System.IO.FileStream..ctor (String путь, режим FileMode, доступ к FileAccess, общий ресурс FileShare) в System.Net.FileWebStream..ctor (запрос FileWebRequest, строка путь, Режим FileMode, доступ к FileAccess, совместное использование FileShare) в System.Net.FileWebRequest.GetRequestStreamCallback (состояние объекта)
--- Конец внутренней стеки стека исключений --- в System.Net.WebClient.UploadDataInternal (адрес Uri , метод String, байт [] данные, WebRequest & запрос) в System.Net.WebClient.UploadString (Uri адрес, метод String, String данные)

*

код, где исключение составляет происходящих

using (var writer = new StringWriter()) 
    { 
     JsonSerializer.Create().Serialize(writer, payLoad); 
     var result =client.UploadString(commDialerApiUrl,writer.ToString()); 
     return ((T)JsonConvert.DeserializeObject(result, typeof(T))); 
    } 

Я знаю, что код, указанный выше, не идеален, однако мне просто нужно понять, почему сделана попытка получить доступ. Может ли кто-нибудь дать некоторое понимание, пожалуйста?

+0

Ну, у вас есть причина проблемы в ясном тексте! О чем вы еще хотите попросить? =) –

+0

почему вы не проверяете, чтобы у вас был доступ к папке, если хуже стало работать с вашим приложением в качестве администратора или щелкните правой кнопкой мыши на ярлыке вашей визуальной студии и щелкните «Запуск от имени администратора» и посмотрите, работает ли он. разрешения на папку – MethodMan

+0

Если ваш вопрос: «Почему этот код пытается получить доступ к« c: \ windows \ system32 \ inetsrv \ Dialer », тогда вы можете подтвердить, что у вас есть в commDialerApiUrl, пожалуйста? – tolanj

ответ

1

Хорошо, проблема была очень простой. Код пытался сделать сообщение Restful на пустой Uri. Поскольку Uri был пустым, веб-клиент пытался разрешить вызов файла (с тем же именем, что и сервис) в inetpub.

Поскольку такой путь к файлу недействителен, то ошибка ввода-вывода.