1

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

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

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

我偷偷地怀疑我没有正确部署所有东西,也许有人可以指出我在那里缺少什么?

谢谢!

附加信息:

项目是一个网站。

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

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

4

6 回答 6

2

如果这是一个网站项目,则代理文件应位于 App_Code 文件夹中

于 2009-07-17T19:17:51.993 回答
1

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

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

于 2009-07-17T14:38:20.030 回答
1

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

于 2009-07-21T21:07:38.870 回答
0

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

于 2009-07-14T05:13:54.887 回答
0

您的 ASP.NET 站点的其他部分是否正常工作?

您的站点是否针对 3.5 并且可能未在生产服务器上安装 3.5?

于 2009-07-17T02:52:03.593 回答
0

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

于 2009-07-17T02:55:53.447 回答