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

Posted

技术标签:

【中文标题】我在服务器上使用的解决方案是哪个 machine.config 文件?【英文标题】:Which machine.config file is my solution using on the server? 【发布时间】:2012-03-03 06:55:31 【问题描述】:

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

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

<processModel autoConfig="true" userName="SYSTEM" password="AutoGenerate">

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

我发现我的应用程序没有在我的机器和服务器上的同一位置使用 machine.config 文件。为了确认这一点,我在两个配置文件的用户名和密码末尾添加了随机数。在我的机器上,执行此操作后应用程序甚至无法运行。在服务器上,它在添加随机数之前以相同的方式运行和出错。

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

【问题讨论】:

【参考方案1】:

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

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

64 位运行时使用不同的 machine.config。基本规则是这样的:

    ASP.NET 1.x 使用%WINDIR%\Microsoft.NET\Framework\v1.1.4322 ASP.NET 2.0 / 3.5 x86 使用%WINDIR%\Microsoft.NET\Framework\v2.0.50727 ASP.NET 2.0 / 3.5 x64 使用%WINDIR%\Microsoft.NET\Framework64\v2.0.50727 ASP.NET 4.0 / 4.5.x x86 使用%WINDIR%\Microsoft.NET\Framework\v4.0.30319 ASP.NET 4.0 / 4.5.x x64 使用%WINDIR%\Microsoft.NET\Framework64\v4.0.30319 对于使用完整 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 Tab (IIS 6) 或 AppPool (IIS 7+)

x64 与 x86 取决于 IIS 6 的元数据设置 W3SVC/AppPools/Enable32BitAppOnWin64 或 IIS 7 中的 AppPool。

【讨论】:

两台机器都是32位的,我刚刚确认了。为我没有考虑过的事情 +1 @turbo 我想你可以使用代码ConfigurationManager.OpenMachineConfiguration().FilePath 找出它在哪里寻找machine.config。您需要引用 System.Configuration 程序集。 嗯,它在两台机器上显示为相同的位置。我想我的猜想是错误的。也许我的项目以某种方式没有引用更新的版本(我知道你必须重新启动 IIS Admin Service,我已经这样做了)。你证明了我的猜想是错误的,但回答了我的问题。感谢您的帮助。

以上是关于我在服务器上使用的解决方案是哪个 machine.config 文件?的主要内容,如果未能解决你的问题,请参考以下文章

将machineKey添加到machine.config

VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法

VSTS Online - 将文件从AGENT MACHINE复制到VSTS

在 Python 中获取硬盘大小

如何在云服务提供商的平台上使用Docker Machine

当SAP云平台account的service Marke place里找不到Machine Learning服务该怎么办