c# - 文件存在于 Windows 资源管理器和记事本中,但在我的程序中无法访问

标签 c# iis notepad

为什么会出现下面的问题?

场景:

  • 确保已安装 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/

相关文章:

asp.net - 在 IIS 7.5 上运行的 ASP.NET 应用程序上强制使用 Https

c# - 有没有办法检测是否使用了字符串连接?

c# - Span<T> 不需要局部变量赋值。那是一个功能吗?

c# - 使用 json.net 序列化对象并删除 "title"

c# - 将 ListBox DataSource 属性设置为 null 以更改列表项是否错误?

windows - 在 Subversion 中使用 Windows 记事本作为提交日志消息编辑器

c# - LogParser 访问被拒绝错误

c# - 该方法或操作未实现。在 C# 中停止 IIS 网站时

VBA使用宏将22个管道(|)添加到文本文件

c# - 如何从某个网页复制所有文本并将其保存到记事本C#