Visual Studio 中的 WCF Web 服务
Posted
技术标签:
【中文标题】Visual Studio 中的 WCF Web 服务【英文标题】:WCF Webservices in visual studio 【发布时间】:2013-10-25 09:36:41 【问题描述】:我是新手,需要一些帮助。 我在 Visual Studio 中创建了一个 wcf 服务应用程序并编写了一个简单的登录方法,该方法接收参数用户 ID 和密码,然后返回一个已登录用户对象的对象,该对象具有两个字段名称和组织。
LoggedUser 类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization;
namespace crmpp_android_service
public class LoggedUser
public string name;
public string organization;
[DataMember]
public string Name
get return name;
set name = value;
[DataMember]
public string Organization
get return organization;
set organization = value;
运营合同:
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
UriTemplate = "login/?userid=userid & pass=pass"
)]
[Description("User Login return username & Organization currently affiliated")]
LoggedUser login(string userid, string pass);
Service1.svc 中的方法实现:
public LoggedUser login(string userid , string pass)
LoggedUser log_usr = new LoggedUser();
log_usr.name = "Ahsan Mehdi";
log_usr.organization = "JDC";
return log_usr;
但是当我通过按 ctrl+F5 运行应用程序时,它会像这样打开一个 wcf 测试客户端并返回数据。
当我为服务编写 URL 时,我无法从 android 应用程序或浏览器获得响应,它向我显示了这样的页面。
http://localhost:57127/Service1.svc
当完整的网址像这样
http://localhost:57127/Service1.svc/login/?userid=abc123&pass123
它不会返回任何类似指南或帮助的信息。
【问题讨论】:
【参考方案1】:据我了解,您希望访问托管在您的本地主机上而不是 IIS 上的这个 WCF url。要访问您的 localhost 网络服务,请使用它而不是 localhost
http://10.0.2.2:Port/Service1.svc/login/?userid=abc123&pass123
在 IIS 上使用分配给您的系统 IP。
http://192.168.0.123:Port/Service1.svc/login/?userid=abc123&pass123
我希望这能解决您关于连接到 android 项目的问题。
【讨论】:
【参考方案2】:获取 WCFstorm。当你运行它时,添加一个新服务,并复制服务的 url(在你的截图中,它显示为:
localhost:57127/Service.svc
这将允许您测试服务。
这是我在工作中用来测试 WCF 服务的。
我使用的另一个工具是 Fiddler。
【讨论】:
感谢您的回复,但实际上我想从 android 应用程序访问这些服务方法。我将不得不使用服务方法路径作为 localhost:57127/Service1.svc/login/?userid=abc123&pass123 所以这应该以 json 格式返回一些数据,但事实并非如此。 您设置了哪些端点?你能得到一个wsdl吗? 我从这个 url localhost:57127/Service1.svc?singleWsdl 得到一个 xml 页面,这个 url svcutil.exe localhost:57127/Service1.svc?wsdl 不起作用 在您的屏幕截图中,您要查找的 wsdl 的 url 应该是 localhost:57127/Service1.svc?wsdl,还是您移动了它?另外,我不知道通过浏览器 url 调用服务的任何方法。您将需要设置端点并调用它们。 ***.com/questions/802518/… 可能有助于更好地解释它。 感谢您的回复。我没有移动该服务,我能够通过 wcf 测试客户端正确测试该服务。让我检查端点以上是关于Visual Studio 中的 WCF Web 服务的主要内容,如果未能解决你的问题,请参考以下文章
为 WCF 负载测试加载 UI Vs Visual Studio 2010 [关闭]
Visual Studio/SOAP -“添加服务引用”与“添加 Web 服务引用”
使用 Visual Studio 2010 查看完整的 WCF 错误响应
WCF 未将所有内核与 Visual Studio 2010 负载测试一起使用