Visual Studio外部引用不适用于已发布的网站

时间:2014-11-04 22:01:11

标签: c# asp.net visual-studio-2012

我创建了一个在发布时和在Visual Studio中调试时工作正常的Web项目。当我通过引用管理器添加外部引用时,它会正确添加它并在Visual Studio中运行到内部IIS Express。当我将网站发布到我的服务器时,外部应用程序不起作用,看起来好像它们甚至不可用。

在Web服务器中看到这些Interop dll的错误是什么?

必须有一些' hook'连接到本地运行时使用的这些dll,这些dll在部署时不存在。简而言之,这是一个我试图部署到安装和运行应用程序的服务器的API。当在VS中本地运行时,API通常起作用,但当我将其部署到同一服务器上的IIS网站时,它不起作用。 IIS网站具有完全权限,这不是问题,因为此站点仅在内部网络上运行,而不是在Web上运行。

更新: 深入挖掘神秘感,我怀疑它与使用COM interops或API的方式有关。我已将项目属性设置为“生成COM互操作”'并将API引用属性设置为Isolated = false和Embed Interop Type = True。我还为整个项目设置了ComVisible = true。没有构建错误。我可以看到.net或IIS日志中没有错误。我已为所有适用的文件夹设置了完全权限。那么,我错过了什么?

我想我让这个社区难以接受。我将尝试更改为迟到的调用者,看看是否有帮助。

对于那些感兴趣的人来说,似乎问题在于服务器上的DCOM权限。仍然不起作用,但至少服务器现在看到API,只是有COM异常错误,但这超出了我的能力。 API没有源代码或供应商支持。有点让我生气,因为我付了API费用,当我要求帮助时,他们说没有支持。

1 个答案:

答案 0 :(得分:0)

如果您正在引用本地外部程序集,则将它们作为解决方案的一部分添加(例如在ThirdPartyAssemblies文件夹中),然后在“属性”下将每个DLL设置为“始终复制”。

这应确保您的程序集在构建时被复制到bin中,并且它们将在您的Web服务器上可见。