【问题标题】:Cant load a site in IIS8 on 32bit pool (WinSrv 2012 and Sharepoint 2013)无法在 32 位池上的 IIS8 中加载站点(WinSrv 2012 和 Sharepoint 2013)
【发布时间】:2025-11-22 01:00:02
【问题描述】:

我们有一个与 TFS 2010 交互的 WCF 服务,我们计划迁移到 TFS 2012,所以我们安装了一个服务器来测试它,服务器安装了以下内容:

Windows Server 2012
SQL Server 2012
SharePoint 2013
TFS 2012

我为我的服务创建了一个站点并尝试运行,我收到以下消息:

Could not load file or assembly 'Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader' or one of its dependencies. An attempt was made to load a program with an incorrect format.

所以我将池更改为 32 位,但随后我收到了这样的问候:

The Module DLL 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\isapi\spnativerequestmodule.dll' could not be loaded due to a configuration problem. The current configuration only supports loading images built for a x86 processor architecture. 

我知道我被困住了,我用谷歌搜索了那个 DLL,但没有找到任何东西,我创建了一个带有普通 HTML 页面的新站点,并且只在 64 位池上加载。

我在服务器上查看了 TFS 和 SharePoint 创建的网站,都是 64 位的。

我的最佳猜测是它与 SharePoint 2013 有关,但我不确定。

关于如何让网站在 32 位池上运行的任何想法?

谢谢

【问题讨论】:

  • 你试过Fusion Log Viewer看看加载它有什么问题吗?
  • 不,我会尝试并相应更新

标签: iis windows-server


【解决方案1】:

IIS7 支持并排运行 32 位和 64 位,因为它是 now configured per AppPool

但是,虽然我不确定它是否是 SharePoint 2013 中支持的配置,但有针对此错误的修复程序。

您可以使用以下命令将该 SharePoint 模块设置为仅在 64 位进程中运行:

appcmd.exe set config -section:system.webServer/globalModules /[name='SPNativeRequestModule'].preCondition:integratedMode,bitness64

详情请见this site

【讨论】:

    【解决方案2】:

    将其更改为 64 位模式应用程序池,但允许其加载 32 位 dll。

    http://help.webcontrolcenter.com/KB/a1114/how-to-enable-32-bit-application-pool-iis-7-dedicatedvps.aspx

    【讨论】:

    • 该链接是关于将池更改为 32 位或 64 位,而不是将 32 位 dll 加载到 64 位进程中(我认为这甚至不可能)
    • 嗯,你说得对,这是不可能的 - “在 64 位 Windows 上,万维网发布服务不支持在同一台服务器上同时运行 32 位和 64 位工作进程。” microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/…。我猜我的一台服务器一直在 32 位模式下运行。
    • 你真的不应该在与 TFS 相同的服务器上安装任何东西,它使用客户端还是服务器 api?
    • 是的,我们正在使用客户端 API 来验证签入策略和其他内容,我想我需要在另一台运行 SharePoint 2010 的服务器上尝试,谢谢
    【解决方案3】:

    就我而言,我最初将 32 位应用程序启用为 True,这就是所有问题开始的时候。 为了解决这个问题,我在命令提示符下运行了 IISReset/noforce 并最终重新启动了机器。我只有在重新启动机器后才能重新启动它。

    appcmd.exe set config -section:system.webServer/globalModules /[name='SPNativeRequestModule'].preCondition:integratedMode,bitness64
    

    注意:我使用的是 Windows 2008 R2 和 Sharepoint 2013。其他参考建议禁用 Rapid-Fail-Protection,但对我来说没有意义。

    【讨论】:

      最近更新 更多