У меня есть проблема при доступе к сетевому диску в ColdFusion. Я имею \\server\files\sharing
отображенный на z:\
. Если я выполняю этот код, он говорит, что каталог существует для полного пути, но не для отображенного:
<cfscript>
fullPath = "\\server\files\sharing\reports";
mappedPath = "z:\reports";
WriteOutput("fullPath exists: #DirectoryExists(fullPath)#<br/>"); //YES
WriteOutput("mappedPath exists: #DirectoryExists(mappedPath)#"); //NO
</cfscript>
Я сделал некоторый поиск с помощью Google и нашел несколько человек с той же проблемой, но решение состояло в том, чтобы всегда использовать полный путь. Существует ли причина, ColdFusion не смог бы видеть или получить доступ к сетевому диску? И если так, есть ли какие-либо обходные решения (возможно, системный вызов для получения полного пути сетевого диска)?
Причина, по которой в ColdFusion нет доступ к подключенному диску происходит потому, что он работает как служба в Windows.
Услуга (или любой процесс, который работает в другой безопасности context), который должен получить доступ к удаленному ресурс должен использовать Универсальный Соглашение об именах (UNC) имя для доступа ресурс.
Это взято из следующей статьи базы знаний: http://support.microsoft.com/kb/180362
Вы можете изменить службу для запуска от имени отдельного пользователя, для которого назначены диски (я не проверял, работает ли это, но он может), но вы должны использовать UNC-путь вместо подключенного диска.