【问题标题】:Unable to refer to contents of dll file无法引用dll文件的内容
【发布时间】: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


【解决方案1】:

【讨论】:

  • 所有示例都提到了应该在 Visual Studio 中完成的更改。我正在寻找一种涉及手动进行更改的解决方案。
  • 我找到了这个帖子,它很旧,但可能会为您指明正确的方向。 forums.asp.net/t/1520647.aspx/1 对不起,我无法为您解决。我从来没有在 Visual Studio 之外做过这个。
【解决方案2】:

我终于能够解决这个问题了。这是我经过大量搜索后发现的一个非常有用的链接。 http://www.sitepoint.com/net-web-services-5-steps-3/

这是我通过这个练习学到的关键点

如果直接在/bin目录下添加dll,则无需将程序集引用添加到web.config中

我犯的一个愚蠢的错误是我使用与代理类文件名相同的名称来声明该类。类名是TestSearch,代理文件名是TestSearchProxy。无论如何,我将此归咎于我的 Java 背景。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2017-09-20
    • 1970-01-01
    • 2013-08-12
    相关资源
    最近更新 更多