1

好的,所以我有一个 ASP.Net 网站项目。该项目位于网络上的服务器上,由 Visual Studio 2008 通过文件共享访问。

在网站项目中,我添加了对之前创建的 Web 服务的 Web 引用。
我可以通过 winforms 应用程序使用这个 web 服务,没有任何问题。

但是当我尝试在我的代码中引用 Web 服务时,没有出现智能感知,并且服务名称在 Visual Studio 中得到红色下划线并说“找不到类型或命名空间名称‘IMWebService’,您是否缺少程序集引用或使用指令?”

但是,如果我知道 Web 服务方法的确切方法签名,我可以输入它,将它保存到 Web 服务器,它就可以正常工作。例如:

bool test = Contractor.CheckLogin(email, password);

如何让我的 Visual Studio 像网站一样识别服务?

4

7 回答 7

4

我遇到了这个问题,仅与通过“Web 引用”创建的类隔离。一种解决方案是清除 bin 和 obj 文件夹并重新启动 Visual Studio。这并不总是奏效,所以也许这不是一个“解决方案”,但有时 Intellisense 会在那之后得到提升。我还尝试打开 Web 服务的自动生成代码并对其进行修改,然后保存。这似乎让 Intellisense 开始关注该文件。我做的其他任何事情似乎都没有效果。

于 2009-03-02T19:33:18.797 回答
1

检查命名空间,可能有问题。如果您输入全名,请在其下方查找小红框。

如果它不起作用,您可能已经破坏了 Intellisense,因为我每天都使用它并且它有效。

于 2009-02-26T23:29:03.303 回答
1

您可以尝试从临时区域中提取 VS 为您制作的 Web 服务客户端自动生成的代码,并将其添加到您的实际项目中

于 2009-03-02T19:36:54.107 回答
1

使用 Web 应用程序项目而不是网站。

文件 -> 新建 -> 项目 -> C# -> Web -> ASP.NET Web 应用程序

这将解决您的问题以及其他问题。

网站项目很旧,无法正常工作。

于 2009-03-08T08:58:14.873 回答
1

为了帮助缩小问题的范围:

  • 您是否检查过通过 UNC 路径使用 VS 项目的代码访问策略?
  • 您是否收到有关使用从文件共享打开不受信任的代码的任何警告?
  • 如果您在本地运行所有代码,您会得到同样的行为吗?
于 2009-03-08T19:19:01.713 回答
1

一旦我遇到同样的问题,我只需右键单击 Visual Studio 项目资源管理器中的 refrence 文件夹,选择刷新,然后在 2 或 3 分钟后,智能感知出现并且工作正常。我认为它需要一些时间下载架构和网络服务类信息或类似的东西。

于 2009-03-09T16:20:29.293 回答
0

将以下行放在代码文件的顶部:

using Contrator;

如果 Visual Studio 未提供智能感知,但代码在您使用完全限定名称时编译,那么您可以确信在 using 语句中添加命名空间将解决问题。

如果您没有在文件顶部指定命名空间,则 IDE 不知道如何解析该类型。

于 2009-03-02T19:32:24.117 回答