哪个machine.config文件是我在服务器上使用的解决方案?

tur*_*rbo 6 asp.net visual-studio-2010 .net-3.5

我有一个asp.net应用程序,需要编辑machine.config文件才能正常工作.在我的开发机器上(运行windows xp),我在以下位置编辑了machine.config文件:"C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727"

这是我修改的代码行,带有修改(添加用户/通行证):

<processModel autoConfig="true" userName="SYSTEM" password="AutoGenerate">
Run Code Online (Sandbox Code Playgroud)

在服务器上(运行Windows Server 2003),我对同一位置的同一文件进行了相同的更改.但是,当我调试解决方案时,它无法正常工作(没有任何反应,它会超时,在我对配置文件进行这些更改之前,我在开发机器上遇到了同样的问题).

我已经明白我的应用程序没有在我的机器和服务器上的同一位置使用machine.config文件.为了确认这一点,我在两个配置文件中的userName和password末尾添加了随机数.在我的机器上,应用程序甚至在我这样做之后都没有运行.在服务器上,它会在添加随机数之前以相同的方式运行和出错.

简而言之,我的问题是如何确定服务器实际使用的machine.config文件和/或如何设置它以使用上述位置的文件?

vcs*_*nes 12

您的服务器可能是64位服务器,这意味着它将位于:

C:\ WINDOWS\Microsoft.NET\Framework64\V2.0.50727

64位运行时使用不同的machine.config.基本规则如下:

  1. ASP.NET 1.x使用 %WINDIR%\Microsoft.NET\Framework\v1.1.4322
  2. ASP.NET 2.0/3.5 x86使用 %WINDIR%\Microsoft.NET\Framework\v2.0.50727
  3. ASP.NET 2.0/3.5 x64使用 %WINDIR%\Microsoft.NET\Framework64\v2.0.50727
  4. ASP.NET 4.0/4.5.x x86使用 %WINDIR%\Microsoft.NET\Framework\v4.0.30319
  5. ASP.NET 4.0/4.5.x x64使用 %WINDIR%\Microsoft.NET\Framework64\v4.0.30319
  6. 对于使用Full CLR的ASP.NET 5.0,这将与ASP.NET 4.0位置相同,因为.NET Framework 4.6是4.5的替代品.如果ASP.NET 5.0在CoreCLR上运行,则没有machine.config文件的概念.

您使用的ASP.NET版本取决于您的ASP.NET选项卡(IIS 6)或AppPool(IIS 7+)

x64与x86的关系取决于W3SVC/AppPools/Enable32BitAppOnWin64IIS 6 的元数据设置或IIS 7中的AppPool.

  • @turbo我想你可以使用代码`ConfigurationManager.OpenMachineConfiguration().FilePath`来找出它在哪里寻找machine.config.您需要引用`System.Configuration`程序集. (6认同)