写了个web service,能编译运行.
但是打开其它项目引用这个web service的时候,却打不到.(在项目里右键选择web引用,然后选择本地计算机上的web服务)是不是web服务写好了还要注册什么的,怎么才能让其它项目打到这个web服务呢?
发布吗web服务吗? 怎么发布? 

解决方案 »

  1.   

    它是自动用"asp.net development server"调试的,以前用IIS调试的时候好像他就可以啊
      

  2.   


    直接输入地址引用就可以啦如果你在建立WebSvc的时候是使用“本地文件系统”进行创建的,则需要保持WebSvc那个调试窗口是打开的,并且运行过一次
      

  3.   

    我是后者,本地文件系统进行创建,而且可以编译运行.其它项目就不能引用,怎么回事啊
    是不是因为用"asp.net development server"调试的关系,以前用IIS调试,是好的啊
      

  4.   


    提示什么?找不到Web服务?
      

  5.   

    我在web引用中选择"本地计算机上的 Web 服务 "后,显示如下:
    无 - 在本地计算机上没有发现 Web 服务。就是这样一句话 -_-!
    但是我的web服务用vs2005编写并编运行了啊,运行正常.
    为什么以前在xp下,直接选"本地计算机上的 Web 服务 "就能看到web服务,现在就不行
    web服务是不是还需要发布什么的?
      

  6.   


    WebSvc的VS调试器运行着呢么?你在WebSvc的VS调试器F5一下,出现.asmx地址,保持状态不变,直接把地址贴到需要引用的地方,还找不到?
      

  7.   


    我这边一直是这样做试验的,没有任何问题啊我是WinSrv2003,不过有什么关系么?
      

  8.   


    你可以先做一个测试:1、建立一个空解决方案2、添加一个WebSvc,并保证其可用3、在相同的解决方案中再添加一个网站,作为Host程序,添加这个WebSvc引用4、在后来添加的网站当中实例化WebSvc,调用方法,返回值试一下?~呵呵
      

  9.   

    WebSvc的VS调试器运行着也不行.不过运行着的时候输入把url地址复制过去可以.
    但是asp.net development server这个调试器关掉,就连url也不行了.
    因为这个url是动态的,动态的端口号
      

  10.   


    asp.net development server关掉当然不行啦~~呵呵asp.net development server就相当于IIS的功能,就算你本机的IIS没有运行,只要有asp.net development server就可以关掉asp.net development server就相当于WebSvc没有发布啊~呵呵
      

  11.   

    比如调试器生成的url是:http://localhost:4680/WebService_Test/Service.asmx
    其中4680是动态端口,调试器关掉,webservice也找不到了
      

  12.   

    对啊,调试器关掉肯定找不到了,就相当于你发布WebSvc的IIS停止运行了
      

  13.   

    那该怎么办呢?
    难道我要用web服务的时候,一定要用vs2005打开web服务源文件,并一直保持编译状态吗?
    能不能搞得像用IIS调试的时候那样?
    或者怎么才能转回到IIS调试,不想用"asp.net development server"调试啊 -_-!
      

  14.   

    你不用保持编译运行状态,只需要将你调试WebSvc的VS窗口F5运行一次,看到asp.net development server(右下脚任务栏)的图标出现了,然后停止运行即可
    但你必须保持调试WebSvc的VS窗口是持续打开的~呵呵
      

  15.   

    现在的问题是,我想用webservice,但asp.net development server它并不像IIS一样是一直开着的.
      

  16.   


    你可以直接在IIS里建立WebSvc虚拟目录然后运行啊~
      

  17.   

    但你必须保持调试WebSvc的VS窗口是持续打开的~呵呵
    =====
    那不就惨了,我要写另一个项目的时候,我还还得打开这个web服务源文件.
    所以我要开两个vs窗口.
    而且,下次编译试运行的时候,端口号可能会变了.那原来的web引用又不行了....那怎么发布web服务呢?
      

  18.   


    端口号是不会变的,它只在你建立一个WebSvc项目并且运行的时候动态创建一次,以后当你使用VS运行这个WebSvc的时候,都是这个端口号
      

  19.   

    VS2005创建web Site和WebService项目的时候,默认是在“文件系统”上创建,而在调试时,VS2005会开一个轻型的IIS(asp.net development server),且这个服务只能在本地使用,在外网是不可见的,这主要是为了保障调试时的安全性。且这个轻型的IIS服务会随VS2005一起关闭。
       你可以把调试好的项目发布出去("解决方案资源管理器"--项目--发布网站"),选择你要发布的目录,这时会在操作系统的IIS中创建一个虚拟目录,此时可以在本机或其他主机上访问该WebService,关掉VS2005也没所谓了。
        
       建议将你的项目和WebService项目放在同一个解决方案中,在你的项目中添加WebService引用,当调试项目时,会自动启动轻型的IIS。
      

  20.   


    发布WebSvc的时候你肯定要使用IIS建虚拟目录啊
      

  21.   

    -_-! 行了
    原先虚拟目录设错了.
    这个项目分成两个地位存储,
    一个在Visual Studio 2005\Projects\WebService_Test
    一个是Visual Studio 2005\WebSites\WebService_Test
    我原先把虚拟目录设成Projects下的WebService_Test了,应该是websites下的.谢谢fattycat
    现在点"本地计算机上的 Web 服务"也能找到了
      

  22.   

    项目--属性窗口--Developer Web服务器
    端口号     可以自己指定
    使用动态端口   也可以选择true或false