我尝试在ASP.NET中创建Web服务并在智能设备应用程序中获取数据。
我有标准的HelloWorld网络服务,我想在我的应用程序中获取数据,但是当我尝试向我的项目添加Web引用时,Visual Studio找不到任何运行的web服务。如果我在WebService项目中启动WebService并将url复制/粘贴到Application项目中的“Add WebReference”,Visual Studio将找到Webservice,我可以使用InttilSence查找HelloWorld方法(WebServiceClass.HelloWorld()) WebService。但是,当我运行Application项目时,编译器会发出一条错误消息,指出它无法连接到WebService。
我该怎么做?如何访问应用程序项目中的Web服务?我读过的关于这个主题的每本教程或书籍都没有告诉我应该如何运行web服务。在我的世界中,web服务项目应该在我可以从另一个项目访问之前运行,或者我错了吗?
答案 0 :(得分:3)
考虑阅读Rick Strahl's Creating Web Services with .NET and Visual Studio。
从那里,你将获得基础知识。您可以构建和部署XML SOAP Web服务。
然后,您需要让您的应用程序将该Web服务用作“Web引用”。从“添加Web引用”开始。
答案 1 :(得分:2)
首先,您应该将Web服务发布到某个服务器(甚至是您自己的本地IIS),而不是使用Visual Studio Web服务器。
然后在您的应用程序中,指向添加引用时在任何位置发布的URL。
答案 2 :(得分:0)
虽然这有点低技术,但您是否无法通过智能设备应用程序创建网络请求以直接访问网络服务?那是我的建议。
一个例子是使用“WebRequest”类。
答案 3 :(得分:0)
听起来当您尝试从应用程序访问Web Service时,该服务未运行(可能是因为您只在Cassini服务器中运行它?)。
您能够生成Web引用的事实意味着在某些时候,服务正在运行,并且能够通过检查服务来生成帮助程序类。
我会按照David Stratton的建议并将其发布到您开发智能设备应用程序(如本地IIS)时可以运行的地方。
您也可以借助一些错误处理来包装服务调用 - 也许会捕获抛出的特定异常(System.Net.WebException?)