System io filenotfoundexception что делать
Как решить эту ошибку System.IO.FileNotFoundException
Просмотрщик событий
BtnUseDesktop_Click
AvSwitcher, в который входит событие Click Click
Ответов: 5
Я ненавижу указывать на очевидное, но System.IO.FileNotFoundException означает, что программа не нашла указанный вами файл. Итак, что вам нужно сделать, это проверить, какой файл ищет ваш код на производстве.
Чтобы посмотреть, какой файл ищет ваша программа на производстве (посмотрите на свойство FileName исключения), попробуйте следующие методы:
Затем посмотрите файловую систему на компьютере и посмотрите, существует ли файл. Скорее всего, дело в том, что его не существует.
Я столкнулся с подобной ситуацией после публикации приложения ClickOnce, и один из моих коллег из другого домена сообщил, что он не запускается.
Чтобы узнать, что происходит, я добавил оператор catch catch внутри метода MainWindow, как @BradleyDotNET, упомянутый в одном комментарии к исходному сообщению, а затем снова опубликован.
Затем мой коллега сообщил мне подробности об исключении, и это была недостающая ссылка на файл dll сторонней структуры.
Я ошибался этой ошибкой несколько раз. После того, как вы потратили часы на поиск в Google, обновление пакетов nuget, проверку версий, а затем после сидения с полностью обновленным решением, я переосмыслил совершенно правильную, более простую причину ошибки.
Внимательно проверьте все ссылки
Для меня очистка всего решения путем удаления вручную, обновление (удаление и добавление) ссылок снова с синхронизированной версией с целевой машиной, а затем создание с помощью функции «Копировать локальное»> «Ложь для сборки GAC» решает проблему.
Я открыл и построил другой проект в Visual Studio, а затем снова открыл проект с этой ошибкой. Я его построил и решил.
Types of file not found errors
Let’s dig into the different causes of this error. The Message property on FileNotFoundException gives a hint about what is going on.
Could not find file ‘filename’
As the message says, you are trying to load a file that couldn’t be found. This type of error can be re-created using a single line of code:
line 3 is the important one here. I’m trying to load a file that doesn’t exist on the file system ( non-existing.file ). In the example above, the program will print an output to the console looking similar to this:
APP_PATH will be the absolute path to the file that cannot be found. This type of FileNotFoundException actually contains all the information needed to debug the problem. The exception message contains a nice error description, as well as an absolute path to the missing file. If you want to present the user with the path or maybe create the file when not found, there is a nifty property available on FileNotFoundException :
In the example I simply create the missing file by using the Filename property. I’ve seen code parsing the exception message to get the name of the missing file, which is kind of a downer when the absolute path is available right there on the exception 🙂
Would your users appreciate fewer errors?
The system cannot find the file specified. (Exception from HRESULT: 0x80070002)
This error is typically thrown when trying to load an assembly that doesn’t exist. The error can be re-created like this:
Could not load file or assembly ‘assembly’ or one of its dependencies. The system cannot find the file specified.
In this example, I’m referencing an assembly named Lib, which doesn’t exist on the disk or in the Global Assembly Cache (GAC).
The typical cause of this error is that the referenced assembly isn’t on the file system. There can be multiple causes of this. To help you debug this, here are some things to check:
Access errors when running on IIS
Until now all instances of this error have been a missing file from disk. I want to round off this post with a quick comment about security. In some cases, the FileNotFoundException can be caused by the user account trying to access the file, and simply don’t have the necessary access. Under optimal circumstances, the framework should throw a System.UnauthorizedAccessException when this happens. But I have seen the issue in the past when hosting websites on IIS. Make sure that the ASP.NET worker process account (or NETWORK SERVICE depending on which user you are using) has access to all files and folders needed to run the application.
To make sure that the app pool user has access:
При вызове веб-службы клиентского приложения вы получаете ошибку System.IO.FileNotFoundException.
В этой статье помогают устранить проблему, которая возникает при вызове System.IO.FileNotFoundException веб-службы ASP.NET веб-приложения.
Оригинальная версия продукта: ASP.NET
Исходный номер КБ: 823196
Симптомы
При вызове веб-службы ASP.NET веб-приложения вы можете получить следующую ошибку:
Причина
Вы можете получить ошибку, если одно из следующих условий является верным:
Рабочий процесс не имеет разрешений на чтение в каталог Temp процесса, а рабочий процесс не имеет разрешений для записи в каталог Temp процесса.
Класс XmlSerializer создает и компилирует код на лету для выполнения сериализации и десериализации. XmlSerializer Для выполнения компиляции используется объектная модель документов кода (CodeDom). Компиляция CodeDom использует временные файлы на диске. Если рабочий процесс не имеет разрешений на чтение в каталоге Temp и разрешений на записи в каталоге Temp, все вызовы в веб-службу сбой. Поэтому для рабочего процесса требуются разрешения на чтение в каталоге Temp и разрешения на записи в каталоге Temp.
В коде, который создается, имеются ошибки XmlSerializer компиляции.
Разрешение 1. Назначение разрешений учетной записи рабочего процесса в каталоге Temp
Чтобы устранить эту проблему, учетная запись ASP.NET рабочего процесса (учетная запись ASPNET или учетная запись NETWORK SERVICE, если ваше приложение развернуто в службы IIS (IIS) 6.0), должна иметь доступ к чтениям и записи в каталоге Temp.
Если используется обезличенный пользователь, он должен иметь полный доступ в каталоге Temp.
Чтобы назначить необходимые разрешения учетной записи рабочего процесса в каталоге Temp, выполните следующие действия:
Щелкните правой %windir%\temp кнопкой мыши и выберите свойства.
В окне Свойства выберите вкладку Security.
Выберите Добавить, введите ServerName\ASPNET, а затем выберите ОК.
Замените ServerName именем веб-сервера.
Замените ASPNET службой NETWORK, если вы развернули приложение на IIS 6.0.
В статье Разрешить выберите поле полный контроль, а затем выберите ОК.
Разрешение 2. Найдите ошибки компиляторов в коде, который создан XmlSerializer
Чтобы найти ошибки, созданные компилятором, необходимо добавитьWeb.configфайл, чтобы сохранить файлы, созданные компилятором. Для этого выполните следующие действия:
Откройте файл Web.config в текстовом редакторе, например Блокнот.
Добавьте XmlSerialization.Compilation переключатель в раздел кода следующим образом:
Запустите клиентскую заявку.
Клиентская служба вызывает веб-службу.
Убедитесь, что в каталоге %windir%\temp _tmpname.00.cs и _tmpname.out.
Файл _tmpname.00.cs — это созданный источник. Файл _tmpname.out должен иметь ошибки компиляторов.
Включить разрешения на чтение и включить разрешения на запись учетной записи рабочего процесса (ASPNET или NETWORK SERVICE) для записи файлов в %tmpname% каталоге Temp.
Статус
Такое поведение является особенностью данного продукта.
Действия по воспроизведению поведения
В следующих разделах приводится информация о действиях по воспроизведению поведения.
Создание веб-службы
По умолчанию создается Service1.asmx.
Назови проект WebServiceTemp.
В обозревателе решений щелкните правой кнопкой мыши Service1.asmx и выберите Код представления.
В меню Построение выберите команду Построить решение.
Создание клиентского веб-приложения
Назови проект WebAppTemp.
В Обозревателе решений щелкните правой кнопкой мыши Ссылки, а затем выберите Добавить веб-ссылку.
В текстовом окне Адрес введите следующий URL-адрес webServiceTemp:
http://localhost/WebServiceTemp/Service1.asmx
Выберите Перейти, а затем выберите Добавить ссылку.
Дважды щелкните WebForm1, чтобы открыть Page_Load код события.
Придать обработнику событий следующий Page_Load код.
В меню Построение выберите команду Построить решение.
Настройка разрешений в каталоге Temp
Чтобы назначить необходимые разрешения учетной записи рабочего процесса в каталоге Temp, выполните следующие действия:
В Windows Explorer найдите %windir% каталог.
Щелкните правой %windir%\temp кнопкой мыши и выберите свойства.
В окне Свойства выберите вкладку Security.
Выберите Добавить, введите ServerName\ASPNET, а затем выберите ОК.
Убедитесь, что поле Write не выбрано в статье Разрешить, а затем выберите ОК.
Вы можете получить ошибку, упомянутую в разделе Симптомы этой статьи.
Не запускается приложение на чистой системе «System.IO.FileNotFoundException»
Ошибка: «Не удалось привести тип объекта «System.ConsoleKeyInfo» к типу «System.IConvertible».»
При запуске пишет, что «Не удалось привести тип объекта «System.ConsoleKeyInfo» к типу.
Неявное преобразование типа «System.Drawing.Icon» в «System.Drawing.Image» невозможно
ПОдскажите как можно вставить рисунок в панель если использую ico. Неявное преобразование типа.
Приложение не запускается на машине с Windows 2003: «не является приложением Win32»
Я начинающий. VS express 2012 для Windows Desktop стоит на 7-ке х64. Создаю на Visual C#.
Необработанное исключение типа «System.Net.Sockets.SocketException» в System.dll
Доброго времени суток! Есть следующая статья: Разработка прокси-сервера на C# В самом конце есть.
То есть Ваша программа работает с каким-то файлом, который есть на вашем компе, но которого, по-видимому, нет на компах Ваших друзей. Ищите в коде, с каким.
Даже если это допустим
C:\Windows\system32\какая_то_библиотека.dll (причем такая библиотека, которой на винде есть ну ВСЕГДА)
то на точно той же версии ОС, но 64-разрядной, этой библиотеки может в той же папке не оказаться, а окажется она в
C:\Windows\SysWow64\какая_то_библиотека.dll
В любом случае, где-то в коде у вас зашит абсолютный путь к файлу, какого на других компах нет.
А может и не абсолютный, а относительный, скажем рядом с ехе должен лежать какой-то файл, а вы его забываете прилагать к ехе друзьям.
Хммм, может установлен плохо?
Я вообще не выдаю какой-то инсталлятор авезомиума клиентам, а просто кладу рядом с ехе набор его библиотек.
Попробуйте и вы так.
Попробуйте все вот эти библиотеки рядом с ехе положить. http://rghost.ru/57476246
Лишние (типа Awesomium.Mono) убрать никогда не поздно
та я поставил его на всякий случай. Вдруг из-за него, но оказалось нет.(Сейчас попробую ваши библотеки приложить). Просто у меня там тоже приложены dll которые ВС сама кладет в папку Debug
Добавлено через 4 минуты
Как я и думал проблема не в dll авесомиума, а чем то другом. Даже уже не знаю что делать. Я вот на 100% уверен, ч то если я Visual Studio туда поставлю, то все заработает.
Добавлено через 1 минуту
ааа, я еще кое что не сказал. У меня приложение сначала открывает 1 окно с картинкой, ну как у фотошопа. А потом должно открываться 2 окно рабочей программы, и вот на нем и выбивает с ошибкой.
Это ни о чем мне не говорит, кода я не вижу.
File Not Found Exception Конструкторы
Определение
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
Инициализирует новый экземпляр класса FileNotFoundException строкой сообщений, настроенной на отображение предоставляемого системой сообщения.
Инициализирует новый экземпляр класса FileNotFoundException с указанным сообщением об ошибке.
Инициализирует новый экземпляр класса FileNotFoundException с указанными данными о сериализации и контексте.
Инициализирует новый экземпляр класса FileNotFoundException указанным сообщением об ошибке и ссылкой на внутреннее исключение, вызвавшее данное исключение.
Инициализирует новый экземпляр класса FileNotFoundException с заданным сообщением об ошибке и именем файла, который не удается найти.
Инициализирует новый экземпляр класса FileNotFoundException с заданным сообщением об ошибке, именем файла, который не удается найти, и ссылкой на внутреннее исключение, являющееся причиной данного исключения.
FileNotFoundException()
Инициализирует новый экземпляр класса FileNotFoundException строкой сообщений, настроенной на отображение предоставляемого системой сообщения.
Комментарии
Этот конструктор инициализирует Message свойство нового экземпляра, сопоставляя с ним системное сообщение, описывающее ошибку, например «не удалось найти указанный файл». Это сообщение учитывает культуру текущей системы.
См. также раздел
Применяется к
FileNotFoundException(String)
Инициализирует новый экземпляр класса FileNotFoundException с указанным сообщением об ошибке.
Параметры
Текстовое описание ошибки. Содержимое message должно быть понятно пользователю. Для гарантированной локализации этой строки для текущей системной культуры необходимы сведения о том, кто вызывает этот конструктор.
Комментарии
См. также раздел
Применяется к
FileNotFoundException(SerializationInfo, StreamingContext)
Инициализирует новый экземпляр класса FileNotFoundException с указанными данными о сериализации и контексте.
Параметры
Объект, содержащий сериализованные данные объекта о возникающем исключении.
Объект, содержащий контекстные сведения об источнике или назначении.
См. также раздел
Применяется к
FileNotFoundException(String, Exception)
Инициализирует новый экземпляр класса FileNotFoundException указанным сообщением об ошибке и ссылкой на внутреннее исключение, вызвавшее данное исключение.
Параметры
Текстовое описание ошибки. Содержимое message должно быть понятно пользователю. Для гарантированной локализации этой строки для текущей системной культуры необходимы сведения о том, кто вызывает этот конструктор.
Комментарии
В следующей таблице показаны первоначальные значения свойств для экземпляра FileNotFoundException.
Свойство | Значение |
---|---|
InnerException | Ссылка на внутреннее исключение. |
Message | Строка сообщения об ошибке. |