我需要从IIS(7.5)上运行的Python(3.6)CGI脚本访问UNC共享上的文件。我的最小测试示例是:
import os
import psutil
print('Content-Type: text/html\n')
print(psutil.Process(os.getpid()).username())
print(os.path.exists('\\\\<server name>\\<folder>'))
当我从命令行运行此脚本时,它会打印所需的输出:
> python cgi-bin\test.py
Content-Type: text/html
<domain>\<my username>
True
但是当我通过访问http://localhost/my-site/cgi-bin/test.py
在IIS上运行它时,我得到:
<domain>\<my username>
False
请注意,我在IIS配置中设置了以下内容:
<domain>\<my username>
。<domain>\<my username>
。让我感到困惑的是,通过IIS运行脚本会打印出正确的进程所有者(我),就像从命令行运行脚本一样。但是,在一种情况下,我可以访问UNC共享,在另一种情况下,它会失败。