为什么会出现下面的问题?
场景:
- 确保已安装 IIS
- 执行
“记事本 %WINDIR%\System32\inetsrv\config\applicationHost.config"
使用管理员 帐号
实际结果:文件在记事本中成功打开
在管理员帐户的上下文中执行以下代码:
string filePath = @"%WINDIR%\System32\inetsrv\config\applicationHost.config"; Console.WriteLine(File.Exists(Environment.ExpandEnvironmentVariables(filePath)));
实际结果:错误
预期结果:真</p>
最佳答案
问题是,如果您在 64 位操作系统上运行 32 位应用程序,.Net 框架会自动将请求从 %WINDIR%\System32
重定向到 %WINDIR%\SysWOW64
.
如果您将项目更改为目标 64 位,这将解决您的问题。
您也可以通过将 System32 更改为 sysnative 来解决问题。 ,但前提是您将应用程序保留为 32 位应用程序:
string filePath = @"%WINDIR%\sysnative\inetsrv\config\applicationHost.config";
关于c# - 文件存在于 Windows 资源管理器和记事本中,但在我的程序中无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8690251/