Проблема, с которой вы сталкиваетесь, является распространенной проблемой для разработчиков, поскольку они начинают разрабатывать на своем рабочем столе или в своей папке «Документы», не осознавая, что только они имеют к ним доступ. Другими словами, эти папки имеют только ACL для вас. Это работает нормально, когда вы используете Visual Studio, так как они запускают процесс как вашу личность, что заставляет все это работать, однако, когда вы используете реальный сервер, такой как IIS, который работает как служба, он больше не будет запускать процесс как вашу личность, но некоторые служебная учетная запись, которая НЕ будет иметь доступа к вашему каталогу.
Вам нужно будет добавить списки ACL для IIS, чтобы иметь возможность читать файлы (IIS_IUSRS или идентификатор AppPool, например IIS APPPOOL \ DefaultAppPool, в зависимости от настроек вашего приложения), или переместить его в папку, к которой у вас достаточно as \ inetpub \ wwwroot \