Хотя класс IO в .net на C# является очень мощным, он непрактичен на серверах многих поставщиков виртуальных услуг из-за своих мощных функций. Поскольку IO.Directory и IO.DirectoryInfo будут проходить по диску и каталогу жесткого диска, на котором расположен веб-сайт при работе с папкой приложения. Как правило, поставщики виртуальных услуг не предоставляют разрешения на чтение для пользователей сетевых служб этого диска, поэтому при работе. папка При использовании этих двух классов в IO появится следующая ошибка: Часть пути «E:» не найдена.
Объяснение: Во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, проверьте трассировку стека для получения более подробной информации об ошибке и месте кода, которое ее вызвало.
Сведения об исключении: System.IO.DirectoryNotFoundException: часть пути «E:» не найдена.
Ошибка источника:
во время выполнения текущего веб-запроса было создано необработанное исключение. Вы можете использовать приведенную ниже информацию о трассировке стека исключений, чтобы определить причину и местонахождение исключения.
Трассировка стека:
[DirectoryNotFoundException: часть пути «E:» не найдена. ]
System.IO.__Error.WinIOError(Int32 errorCode, String str) +287
System.IO.Directory.InternalCreateDirectory(String fullPath, String path) +489
System.IO.Directory.CreateDirectory(строковый путь) +195
-----------------------
Информация о версии: Версия Microsoft .NET Framework: 1.1.4322.2300 Версия ASP.NET: 1.1.4322.2300
Путь E не найден: /, Диск E — это путь к диску на сервере, который может различаться в зависимости от сервера. Столкнувшись с этой проблемой и поставщик услуг отказывается предоставить вам дополнительные разрешения, как вам ее решить?
Ха-ха, может быть, это потому, что мои базовые знания относительно скудны, поэтому я искал ответы в Интернете, но не смог найти ответ. Случайно я обнаружил, что asp может создавать папки с помощью fso. Поэтому я подумал об использовании asp.net для вызова компонента fso в окне. Ха-ха, это действительно сработало. Я пишу эту статью для тех друзей и братьев, которые борются с этой проблемой и не могут ее решить.
Project->Reference Browse COM-компонент Microsoft Scripting Runtime
Scripting.FileSystemObject fso=new Scripting.FileSystemObjectClass();
fso.CreateFolder(Path)
достаточно, но предпосылка этого решения заключается в том, что поставщик виртуальных услуг включил FSO,
что касается Файл операции ввода-вывода. Почему два объединенных класса пересекают корневой каталог диска, все еще изучается, но проблема наконец решена. Я надеюсь, что люди, знающие это, могут дать вам ответ.
http://www.cnblogs.com/ccc110/archive/2006/12/22/600480.html