【发布时间】:2012-12-04 09:53:48
【问题描述】:
我有一个在 IIS 中运行的 C# 网站。我需要在我的 aspx 页面中使用 Web 服务。我使用命令 wsdl.exe 创建了一个代理类并为它生成了一个 dll。我复制了 bin 目录下的 dll,但我无法从我的 .aspx.cs 文件中引用代理类。
我收到一个错误:
CS0246:找不到类型或命名空间名称“TestSearchProxy”(您是否缺少 using 指令或程序集引用?)”
我尝试使用以下语法在 web.config 中添加程序集引用:
<add assembly="TestSearchProxy, Version=0.0.0.0, Culture=neutral" />
由于 dll 不是强类型,我无法获取 dll 的 PublicKeyToken。
即使添加了程序集,我仍然会收到上述错误。我需要在 IIS 中直接对网站进行更改,而无法在 Visual Studio 中进行更改。
请帮我解决这个问题。
【问题讨论】:
-
您使用的是网络项目还是网站?
-
只需将带有类的文件复制到与您的项目文件(例如您的 .cs 文件)相同的位置并为其提供相同的命名空间。类不是程序集。
-
你为什么要为webservice创建一个dll?要使用 Web 服务,请转到引用并添加对您的 Web 服务的引用。
-
就像我提到的,我没有在 Visual Studio 中进行更改。我需要手动更改文件并将它们直接复制到 IIS。所以我将无法添加服务引用。
-
我将代理类复制到与我的 .aspx 和 .aspx.cs 文件相同的位置,并确保代理类具有默认命名空间。当我添加代码“TestSearchProxy searchProxy = new TestSearchProxy();”时,我仍然遇到同样的错误在我的 .aspx.cs 文件中。
标签: c# asp.net web-config