在生产(IIS)服务器上的ASP.NET上使用Web服务的问题

时间:2009-07-14 04:58:18

标签: asp.net web-services iis deployment web-reference

我们在ASP.NET站点上实现了一些调用远程服务的SOAP客户端代码。实现基本上是通过使用Visual Studio“添加Web引用”向导,在代码中添加适当的“使用remote.service.namespace”并调用服务来完成的。

代码在本地(从Visual Studio)完美运行,但在缺少程序集引用错误的生产Web服务器上失败:

  

CS0246:找不到类型或命名空间名称'remote.service'(您是否缺少using指令或程序集引用?)

我有一种偷偷摸摸的怀疑,我没有正确地部署一切,也许有人可以指出我在那里失踪的是什么?

谢谢!

其他信息:

项目是一个网站。

ASP.NET版本2.0已安装并用作开发框和生产服务器上的目标。

WSDL.exe生成的代理文件部署到网站的根文件夹中,该页面所在的文件夹所在的文件夹。全局命名空间(默认)用于代理类生成。

6 个答案:

答案 0 :(得分:2)

如果这是一个WebSite项目,那么代理文件应该驻留在App_Code文件夹

答案 1 :(得分:1)

您提到代理dll位于“网站的根文件夹,页面所在的位置”。

您应该将dll放在“bin”文件夹中。如果文件夹不存在则创建它。

答案 2 :(得分:1)

.NET中的Web服务客户端堆栈执行代理客户端的运行时生成(来自wsdl.exe / svcutil.exe生成的类中的注释)。这个生成的文件通常最终出现在你的一个服务器临时目录中(某个主窗口树下有一个)。问题是ASP.NET用户帐户没有权限写入此特定临时目录,但在写入文件时没有注意到,因此您最终会尝试加载生成的错误归档。根据服务器上的确切安装顺序,您可能会遇到这种情况。一旦找到正确的目录,您只需修复目录上的NTFS权限即可解决问题。

答案 3 :(得分:0)

您是否将App_WebReferences文件夹及其所有内容复制到服务器?

答案 4 :(得分:0)

ASP.NET网站的其他部分是否有效?

您的网站目标3.5和生产服务器上是否未安装3.5?

答案 5 :(得分:0)

这是一个网站还是一个Web应用程序项目?我打赌这是一个网站。