【问题标题】:ASP.NET - Couldn't publish my web site in windows server 2008 r2ASP.NET - 无法在 windows server 2008 r2 中发布我的网站
【发布时间】:2014-03-28 10:44:25
【问题描述】:

首先,我在 Windows 7 中发布我的网站,一切顺利。 但是当我尝试在 windows server 2008 r2 中发布相同的网站时,我收到了这个错误:

“/MyWebsite”应用程序中的服务器错误。无法加载文件或 程序集“System.Net.Http”或其依赖项之一。强大的名字 无法验证签名。组件可能已被篡改 有,或者是延迟签署但没有完全签署正确的 私钥。 (HRESULT 异常:0x80131045)

任何人都可以帮助我吗,拜托!我找了这个错误好几天了,但我无事可做。 提前致谢!

【问题讨论】:

  • 这个程序集是否存在于 bin 文件夹中,或者它是从 W7 机器上的 GAC 加载的?
  • 什么版本的.net?您是否可能在 Windows 7 上使用 4.5.1 而在服务器上使用 4.5?
  • 或检查信任级别?

标签: asp.net .net-assembly windows-server-2008-r2 gac


【解决方案1】:

您似乎没有将您的 dll 复制到您在 windows server 2008 r2 中的另一个网站

如果您已经将.dll 复制到您的 2008 iis 中,那么 ..

第一次检查

两者都是系统运行在相同的 64 位还是 32 位?

如果不是那么

1.打开IIS管理器

2.选择应用程序池

3.然后选择你正在使用的池

4.进入高级设置(右侧)

  1. 将启用 32 位应用程序 false 的标志更改为 true。

另一种解决方案

1- 检查您是否引用了一个程序集,而该程序集又引用了旧版本的统一。例如,假设您有一个名为 ServiceLocator.dll 的程序集,它需要旧版本的 Unity 程序集,现在当您引用 ServiceLocator 时,您应该为它提供旧版本的 Unity,这就产生了问题。

2- 可能是所有项目构建其程序集的输出文件夹,具有旧版本的 unity。

您可以使用 FuseLogVw 应用程序找出谁在加载旧程序集,只需定义日志路径,然后运行您的解决方案,然后检查(在 FuseLogvw 中)加载 Unity 程序集的第一行,双击它并查看调用程序集,然后就可以了。

还有很多其他的可能性..

【讨论】:

    猜你喜欢
    • 2017-02-08
    • 2014-05-17
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    相关资源
    最近更新 更多