Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Machine.Config在哪里?_.net_Garbage Collection - Fatal编程技术网

.net Machine.Config在哪里?

.net Machine.Config在哪里?,.net,garbage-collection,.net,Garbage Collection,我想应用一个更改,以便我可以为我的C#3.5应用程序使用服务器GC设置-我可以通过编辑machine.config文件来实现这一点 唯一的问题是我不知道它在哪里 如何在多台不同的机器上以可重复的方式找到此文件的路径32位 %windir%\Microsoft.NET\Framework\[version]\config\machine.config %windir%\Microsoft.NET\Framework64\[version]\config\machine.config 64位

我想应用一个更改,以便我可以为我的C#3.5应用程序使用服务器GC设置-我可以通过编辑
machine.config
文件来实现这一点

唯一的问题是我不知道它在哪里


如何在多台不同的机器上以可重复的方式找到此文件的路径

32位

%windir%\Microsoft.NET\Framework\[version]\config\machine.config
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 
64位

%windir%\Microsoft.NET\Framework\[version]\config\machine.config
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 
[版本]
应等于
v1.0.3705
v1.1.4322
v2.0.50727
v4.0.30319


v3.0
v3.5
只包含到
v2.0.50727
的附加程序集,因此不应该有
config\machine.config
v4.5.x
v4.6.x
存储在
v4.0.30319
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG

中,但这取决于。。。我的建议是:


C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG


C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG

为了绝对确定,请在ASP.NET页面上贴上标签并运行以下代码:

labelDebug.Text = System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile;

我相信这是毫无疑问的

您可以在powershell中运行此命令:

[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config
为.net 4输出此信息:

[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config

但是请注意,这可能会根据.net是以32位还是64位运行而变化,这将分别导致
\Framework\
\Framework64\

在asp.net应用程序中使用此选项

using System.Configuration;
Response.Write(ConfigurationManager.OpenMachineConfiguration().FilePath);

您可以在powershell中运行此操作: 复制并粘贴到power shell中 [System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile

矿山产量为: C:\Windows\Microsoft.NET\Framework\v2.0.50527\config\machine.config

  • 打开Windows运行命令。快捷方式=>windows键+r
  • 键入“microsoft.net”-打开MS.net文件夹
  • 打开“Framework”/“Framework64”文件夹(基于处理器)
  • 选择特定的FW版本文件夹,例如“v4.0.30319”
  • 打开配置文件夹
  • Machine.config将在那里可用。 干杯

  • 这是一个很晚的回复,但是如果有人仍然希望打开
    machine.config
    并查看/更新配置,下面是一个使用powershell的IIS配置示例

    $machineConfig = [System.Configuration.ConfigurationManager]::OpenMachineConfiguration()
    
    $deployment = $machineConfig.GetSection("system.web/deployment")
    
    $deplyment.Retail = $true
    
    $machineconfig.save()
    

    或者在powershell
    [System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
    中运行此命令。在powershell中,您可以省略“System.”,只需使用
    [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
    。(特别是.NET 4.0的32位路径。64位在…\Framework64\…#pedantry中)请注意,如果运行64位PowerShell,这将返回64位路径。可能值得一提的是,在is v2.0.50727和v4.0.30319中可以找到machine.config的仅有两个[version]目录,由于v3.0和v3.5使用.NET 2.0 CLR和v4.5.x是插入式替换,因此没有自己的框架目录。哦,如果你运气不好,仍然在使用.NET 1.1,那么可能有一个Framework/v1.1.4322目录。@ScottLerch在我的系统上不是这样的。有v1.0.3705、v1.1.4322、v2.0.50727、v3.0、v3.5和v4.0。30319@KevinPanko是的,我已经提到了关于1.1的警告,但也应该提到1.0。。。只是很长一段时间没有处理这两个问题了。但是,您不应该在v3.0或v3.5目录中找到machine.config,如果您这样做,我也不知道为什么。请记住在以管理员身份运行记事本的情况下打开.config文件,这样当您保存某些内容时,系统不会将您的更改保存在基于32位或64位的错误文件夹中。@afshinteymori我不是100%确定,但如果您以非管理员模式运行记事本,您应该无法保存任何更改,因为您没有对文件的写访问权限?(另外,如果您在管理中运行或不运行,则在32位或64位中保存时不应更改)。