【问题标题】:WCF Webservices in visual studioVisual Studio 中的 WCF Web 服务
【发布时间】: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

它不会返回任何类似指南或帮助的信息。

【问题讨论】:

    标签: android asp.net wcf web-services wcf-rest


    【解决方案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 调用服务的任何方法。您将需要设置端点并调用它们。 stackoverflow.com/questions/802518/… 可能有助于更好地解释它。
      • 感谢您的回复。我没有移动该服务,我能够通过 wcf 测试客户端正确测试该服务。让我检查端点
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 2010-10-20
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多