locked
为什么添加web引用失败? RRS feed

  • 问题

  • 用VS C#做的一个学习例子,怎么没法添加web引用,而在IE中可以识别WebService的接口资料。

    VS添加web引用时,显示的信息如下:

     

    下载“http://localhost:8081/ServiceExe.IpService”时出错。
    无法连接到远程服务器
    以一种访问权限不允许的方式做了一个访问套接字的尝试。 127.0.0.1:8081

     

    有时在添加web引用时的浏览器窗口可以识别接口,但右边的“添加引用(R)”按钮始终时灰色的。

    在添加有些互联网上开放的SwbService时,也是出现同样的问题。

    请问时什么原因导致的?

    2009年1月13日 14:28

答案

  •  

    奇怪,用VS2008 Team System 就可以正常引用了。
    2009年1月20日 11:28

全部回复

  • 下面连接是如何添加web reference的例子。
    http://www.vchome.net/dotnet/dotnetdocs/dotnet29.htm

    如果你确定你添加引用的方法正确的,一般是不会出现你这样的问题的。
    比如说你的第一种情况“
    下载“http://localhost:8081/ServiceExe.IpService”时出错”,
    请先确定该服务是否存在。
    至于你说的“
    按钮始终时灰色的”,你检查下是否当前目录下是否包含有子目录或者是你还没有定位到web service方法,而只是定位到了包含webservice方法的目录。
    2009年1月15日 4:13
  •  

    服务肯定是存在的,因为在第一次练习时,添加成功并且可以正确调用接口,后来将Sweservice的接口函数名称修改了,客户端删除web引用然后重新添加web引用,就出现灰色按钮,且有时出现下载“http://localhost:8081/ServiceExe.IpService”时出错”。然后全部重新做WebService和客户端,均告失败。

    有时在添加引用是可以出现接口描述,但右边仍然显示下载“http://localhost:8081/ServiceExe.IpService”时出错”,且“添加引用”按钮是灰色的。

    “至于你说的“按钮始终时灰色的”,你检查下是否当前目录下是否包含有子目录或者是你还没有定位到web service方法,而只是定位到了包含webservice方法的目录。”,这里的目录指客户端的目录还是哪个?

    重新新建一个项目,引用楼上的

    http://chs.gotdotnet.com/quickstart/aspplus/samples/services/DataService/VB/DataService.asmx

    仍然是失败

    2009年1月15日 10:41
  • 你好,
    http://chs.gotdotnet.com/quickstart/aspplus/samples/services/DataService/VB/DataService.asmx
    这个服务已经不存在了,你点击进去看看。

    至于我说的目录就是指要定位到.asmx这样的级别。
    就拿上面那个服务举例,必须要指定到DataService.asmx这个级别才行。

    2009年1月16日 1:46
  • 谢谢,后来我也发现那个地址没了。

    没错,是指定到DataService.asmx。

    我在2台计算机上测试都没能成功,不知道究竟是哪你出现问题了。

    计算机环境均是:Windows 2003 server sp2 ,IIS 6.0,VS2008 trial版。

    当使用VS写Sebservice时,在访问时IIS的w3wp.exe报错;用DELPHI写的EXE形态的webservice,第一次在VS2008(C#托管)里面引用时是正确的,且可以正确执行调用WebService中的接口函数,后来更改DELPHI的WebService中的接口函数名称后,VS2008再次引用就出现失败,或者显示出接口但“添加引用按钮”是灰色的。后来更换到另外电脑重新new工程也是出现相同的问题,而在IE中均可以读出WebService的WSDL内容。

    • 已建议为答案 ghkjhjkhjk 2009年2月11日 7:54
    2009年1月16日 14:15
  • 修改下你的端口号试试。
    具体可以参考下
    http://www.diybl.com/course/4_webprogram/asp.net/netjs/2008530/118066.html

    找到sln文件然后对应着上面的文档修改下。
    还不行就试着修改引用webservice的端口。
    • 已建议为答案 ghkjhjkhjk 2009年2月11日 7:54
    2009年1月19日 4:00
  •  

    根据http://www.diybl.com/course/4_webprogram/asp.net/netjs/2008530/118066.html一文,查找自己的sln文件,并没有发现端口配置参数,重新new一个ASP.NET 的WebApplication1,也没有找到VWDPort

    使用的是VS2008。

    2009年1月20日 8:39
  • 你好,我的也是VS2008但是我的找的到。
    我找到后用写字板打开如下。
    Microsoft Visual Studio Solution File, Format Version 10.00
    # Visual Studio 2008
    Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "AjaxDemo", "D:\Project\AjaxDemo\", "{14EF0AA1-09D3-4C40-8DB9-EF771CD166B5}"
        ProjectSection(WebsiteProperties) = preProject
            TargetFramework = "3.5"
            Debug.AspNetCompiler.VirtualPath = "/AjaxDemo"
            Debug.AspNetCompiler.PhysicalPath = "D:\Project\AjaxDemo\"
            Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\AjaxDemo\"
            Debug.AspNetCompiler.Updateable = "true"
            Debug.AspNetCompiler.ForceOverwrite = "true"
            Debug.AspNetCompiler.FixedNames = "false"
            Debug.AspNetCompiler.Debug = "True"
            Release.AspNetCompiler.VirtualPath = "/AjaxDemo"
            Release.AspNetCompiler.PhysicalPath = "D:\Project\AjaxDemo\"
            Release.AspNetCompiler.TargetPath = "PrecompiledWeb\AjaxDemo\"
            Release.AspNetCompiler.Updateable = "true"
            Release.AspNetCompiler.ForceOverwrite = "true"
            Release.AspNetCompiler.FixedNames = "false"
            Release.AspNetCompiler.Debug = "False"
            VWDPort = "2121"
            DefaultWebSiteLanguage = "Visual C#"
        EndProjectSection
    EndProject
    Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
            Debug|.NET = Debug|.NET
        EndGlobalSection
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
            {14EF0AA1-09D3-4C40-8DB9-EF771CD166B5}.Debug|.NET.ActiveCfg = Debug|.NET
            {14EF0AA1-09D3-4C40-8DB9-EF771CD166B5}.Debug|.NET.Build.0 = Debug|.NET
        EndGlobalSection

    你参考我的sln文件格式看看,不行手动加上去试试。

        GlobalSection(SolutionProperties) = preSolution
            HideSolutionNode = FALSE
        EndGlobalSection
    EndGlobal

    2009年1月20日 9:18
  • 我创建的是web site,不是web application.
    web applicaton是没有上面的设置。
    你创建个web site试试。
    • 已建议为答案 ghkjhjkhjk 2009年2月11日 7:55
    2009年1月20日 9:43
  • 奇怪,刚才重新new一个windows程序,我的sln文件是下面的:

    Microsoft Visual Studio Solution File, Format Version 10.00
    # Visual Studio 2008
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsFormsApplication4", "WindowsFormsApplication4\WindowsFormsApplication4.csproj", "{A2C0D630-D29E-4AA1-A4E2-8582AB147225}"
    EndProject
    Global
     GlobalSection(SolutionConfigurationPlatforms) = preSolution
      Debug|Any CPU = Debug|Any CPU
      Release|Any CPU = Release|Any CPU
     EndGlobalSection
     GlobalSection(ProjectConfigurationPlatforms) = postSolution
      {A2C0D630-D29E-4AA1-A4E2-8582AB147225}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
      {A2C0D630-D29E-4AA1-A4E2-8582AB147225}.Debug|Any CPU.Build.0 = Debug|Any CPU
      {A2C0D630-D29E-4AA1-A4E2-8582AB147225}.Release|Any CPU.ActiveCfg = Release|Any CPU
      {A2C0D630-D29E-4AA1-A4E2-8582AB147225}.Release|Any CPU.Build.0 = Release|Any CPU
     EndGlobalSection
     GlobalSection(SolutionProperties) = preSolution
      HideSolutionNode = FALSE
     EndGlobalSection
    EndGlobal

    2009年1月20日 9:45
  •  KeFang Chen - MSFT 写:
    我创建的是web site,不是web application.
    web applicaton是没有上面的设置。

    我创建智能设备的也是没有。

    我练习的是:

    创建一个WinCE下面的程序,希望这个程序可以访问网络上的WebService,但就郁闷到现在。楼主也创建一个试一试。非常感谢!

    我的MSN是smartdata99@hotmail.com

    2009年1月20日 9:48
  •  

    奇怪,用VS2008 Team System 就可以正常引用了。
    2009年1月20日 11:28
  •  我用的是vs2008 team system但是只要引用外部的web service就很难成功
     用微软的live search api做搜索老是在isa seaver上验证失败,一直没的解决

    Dragon
    2009年3月5日 3:26
  • 我是在局域网内做开发的,发现奇怪的事情:
    使用VS2005可以正常添加WebService服务,但是使用VS2008就无法正确添加了,报错误:
    Custom tool error:Failed to generate code for the service feference 'ServiceReference1'. Please check other error and warning messages for details.

    打开 reference.cs,发现里面没有自动生成代码。

    有人碰到过类似的情况吗?
    2009年3月9日 3:27