ASP.net Web服务和智能感知

时间:2009-02-26 19:28:11

标签: c# asp.net web-services soap intellisense

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

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

但是当我尝试在我的代码中引用Webservice时,没有出现intellisense,并且服务名称在Visual Studio中得到红色下划线并且说“找不到类型或命名空间名称'IMWebService'你是否错过了汇编参考或使用指令?“

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

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

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

7 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

检查名称空间,可能存在问题。如果输入全名,请在其下面找到小红框。

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

档案 - >新 - >项目 - > C# - >网络 - > ASP.NET Web应用程序

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

网站项目已旧,无效。

答案 4 :(得分:1)

帮助缩小问题的范围:

  • 您是否通过UNC路径检查了使用VS项目的代码访问策略?
  • 您是否收到有关在文件共享中使用打开不受信任代码的警告?
  • 如果你在本地运行所有代码,你会得到同样的行为吗?

答案 5 :(得分:1)

一旦我遇到同样的问题,我只需右键点击visual studio中项目资源管理器中的refrence文件夹,选择Refresh,然后在2或3分钟后,intelisense出现并正常工作..我认为它需要一些时间来下载架构和Web服务类信息或类似的东西。

答案 6 :(得分:0)

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

using Contrator;

如果Visual Studio没有提供intellisense,但是当您使用完全限定名称时代码会编译,那么您可以相当确信在using语句中添加名称空间将解决问题。

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