我在浏览本地iis7上的已发布网站时遇到问题(在Windows 7上)。
使用F5(dev iis)通过VS2008浏览asp.net网站时,它运行正常。发布和浏览时,我得到了:
'/ MySite'应用程序中的服务器错误。
找不到指定的模块。 (HRESULT异常:0x8007007E)
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.IO.FileNotFoundException:找不到指定的模块。 (HRESULT异常:0x8007007E)
堆栈跟踪也没有提供有问题的dll的线索。我将相同的已发布文件夹复制到另一台计算机(也使用Windows 7 32位和iis 7)并且它可以正常工作。
由于这是我的机器上全新安装的iis,因此我在“打开/关闭Windows功能”中验证了匹配的所选项目。在注意到这个问题后,我还运行了“aspnet_regiis”util,但问题仍然存在。
该网站包含多个外部dll(本机和托管),它们都出现在已发布的bin文件夹中(与开发bin文件夹相同)
任何见解?
干杯,
谢伊
答案 0 :(得分:3)
从这个帖子中收集:http://social.msdn.microsoft.com/forums/en-US/netfx64bit/thread/f609f52e-00f6-4ada-9d6e-7129b85d3d4d/,正如线程底部所提到的(截至目前为止的第二篇文章),我们的问题是“流氓”dll, Microsoft.SqlServer。 Replication.dll 即可。我们只是删除了dll,没有更多的错误。另外,由于解决方案中没有项目引用此dll,我只是将其从bin文件中删除,后续版本/发布不添加dll。我不知道dll首先是如何进入bin文件的。大学恶作剧,也许。
答案 1 :(得分:2)
原生dll应该可以在PATH中找到。问题是它们属于用户路径而不是系统路径,因此它通过VS工作正常但不通过IIS工作。我将dll文件夹添加到系统PATH中,一切正常......
答案 2 :(得分:0)
在大多数情况下是一个很长的镜头,但检查你有很好的.NET Framework库。除了在浏览器窗口中显示错误的纯文本外,在IIS 6上运行的VS 2005维护的旧版Framework 2.0网站没有任何结果。提琴手和萤火虫什么都没有。开始检查这个,那个和另一个。也许当想知道如何使用aspnet_iisreg时,发现C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319文件夹只有少量文件。没有多大意义,应用程序是2.0,但有一些跨应用程序通信和几个库,所以可能有些运行4.0或者可能是IIS将尝试使用最高版本的.NET Framework中的一些东西可用。
更了解服务器的同事使用here中的独立安装程序修复了4.0 Framework。 现在运行得很好。
答案 3 :(得分:0)
当目标服务器上的.Net Framework仅是4.5.2且最近升级的Nuget程序包需要4.7.2时,发生了此错误。为了暂时解决此问题,我们将Nuget库降级为以前的版本,该版本在升级服务器库之前不需要4.7.2。
尽管我们的项目属性选择了.NET Framework 4.5.2作为目标框架。