[英]Why could not load sharpsvn or one of its dependencies is coming only while publishing asp.net website
[英]Only after publishing: adding DLLs to ASP.Net Empty Web Application generates could not load file or assembly 'Name' or one of its dependencies
我的开发计算机具有Windows 7 Ultimate x64。 我们使用VS2010。 我使用asp.net开发服务器进行调试。 我们使用C#。
我们的远程服务器具有Windows Web Server 2008 R2 x64和IIS 7.5
我实质上创建了一个“ ASP.Net空Web应用程序”并添加了新的Webform Default.aspx,以便可以看到一些内容。 我在笔记本电脑上构建并运行,然后看到Default.aspx。 然后,我发布到本地文件夹,然后复制到远程服务器。 我也可以远程访问Default.aspx。 一切都按预期进行。
然后,我添加对3个DLL的引用并进行构建。 在本地运行时,可以看到Default.aspx。 然后,我发布到本地文件夹并复制到服务器。 尝试远程查看Default.aspx时,出现错误: 无法加载文件或程序集“ DLL名称(不带DLL扩展名)”或其依赖项之一。 试图加载格式错误的程序。
我到处搜索并尝试了大多数建议:
Network Service
IIS_IUSRS
添加到远程服务器中的Bin文件夹中。 唯一有效的方法是从远程文件夹中的Bin中删除DLL。 然后,我可以远程看到Default.aspx。 看来错误是当我将它们添加为参考时。
关于DLL:我是几年前在VS2005或VS2008中创建的(不确定),我不知道它们是否在VS2008的较新版本中重建。 但是我也尝试使用VS2008(带有框架3.5)和VS22010(也带有3.5)创建一个“ ASP.Net Web应用程序”。 当我尝试添加引用时,它向我发出警告:“此程序集是由比当前加载的运行时新的运行时构建的,无法加载。”
这似乎很像我遇到的问题,我在这篇文章中对此进行了详细介绍:
IIS7不会加载C ++ CLI DLL,但前提是要使用比VS2008更新的任何东西构建
基本上,Windows Web Server中缺少C ++可再发行软件包。 至少对我来说就是这种情况。
在将应用程序部署到的远程Windows服务器上安装x86和x64 VS2010 C ++可再发行组件包,并查看是否有帮助。
如果仍然无法解决问题,请使用“ DependencyWalker”程序检查DLL可能还需要什么。 DependencyWalker确实显示出假阴性,但它应该为您指明正确的方向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.