我有一个在本地运行良好的IIS 7应用程序,但由于各种原因,需要从Linux共享(Arch 4.8.7-1,ext4文件系统)运行。 IIS在最新的VMWare-Player上运行Win8.1专业版,并且共享是通过VMWare播放器共享文件夹。我能够通过Visual Studio打开项目,但是当我尝试在IIS中运行它时,我遇到了权限问题。但是,主机上的文件夹具有完整的rwx权限,我登录的任何用户都能够成功访问相关文件。
运行ProcMon之后,我发现了这个:
1:10:18.0982351 PM w3wp.exe 4564 NotifyChangeDirectory \\vmware-host\Shared Folders\Dev\XXX\WEBSITE INVALID DEVICE REQUEST Filter: FILE_NOTIFY_CHANGE_FILE_NAME, FILE_NOTIFY_CHANGE_DIR_NAME, FILE_NOTIFY_CHANGE_SIZE, FILE_NOTIFY_CHANGE_LAST_WRITE, FILE_NOTIFY_CHANGE_CREATION, FILE_NOTIFY_CHANGE_EA, FILE_NOTIFY_CHANGE_SECURITY, FILE_NOTIFY_CHANGE_STREAM_NAME, FILE_NOTIFY_CHANGE_STREAM_SIZE, FILE_NOTIFY_CHANGE_STREAM_WRITE
我已经应用了“无更改通知”修补程序,以及注册表更改以强制执行它,但没有运气让它实际工作。
有没有办法在ext4文件系统上启用NotifyChangeDirectory?或者只是禁用此功能"功能"完全?
IIS错误:
Module
IIS Web Core
Notification
BeginRequest
Handler
Not yet determined
Error Code
0x80070001
Config Error
Cannot read configuration file
Config File
\\?\Z:\XXX\WEBSITE\web.config
(注意:Z:\指向\ vmware-host \ Shared Folders \ dev)
答案 0 :(得分:0)
所以,当然,我在发布后立即找到答案。我找到了这个博客:
https://blogs.iis.net/ksingla/list-of-registry-keys-affecting-iis7-behavior
显示了一堆注册表项。我添加了
HKLM\System\CurrentControlSet\Services\W3SVC\Parameters\ConfigPollMilliSeconds (REG_DWORD)
并将其设置为FFFFFFFF。重新启动后,它就像一个梦想。请注意,如果您正在进行开发,则需要将其更改为更低的值(可能是60k?)。