【问题标题】:WCF RESTful Service Configuration Getting 404WCF RESTful 服务配置获取 404
【发布时间】:2012-04-08 14:28:20
【问题描述】:

我第一次尝试制作一个简单的 WCF RESTful 以通过 JSON 使用。我的界面在下面,但是调用 MemberLogon() 方法的 URL 是什么?

我以为会是这样:

http://localhost:49701/Exchange.svc/?membershipNumber=6519548&blah=abc

但我得到一个 404。我感觉这与我的 Web.Config 中的服务配置有关。救命!

我的接口和类是:

[ServiceContract]
public interface IExchange
{
    [System.ServiceModel.OperationContract(Name = "MemberLogon")]
    [WebInvoke(UriTemplate = "/?membershipNumber={membershipNumber}&blah={blah}", Method = "GET", ResponseFormat = WebMessageFormat.Json)]
    Member MemberLogon(string membershipNumber, string blah);
}

[System.Runtime.Serialization.DataContract]
public class Member
{
    [System.Runtime.Serialization.DataMember]
    public string Username { get; set; }
}

配置是:

  <system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior name="MyNamespace.MyClass.ExchangeBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<services>
  <service behaviorConfiguration="MyNamespace.MyClass.ExchangeBehavior" name="MyNamespace.MyClass.Exchange">
    <endpoint address="" binding="webHttpBinding" contract="MyNamespace.MyClass.IExchange" />
  </service>
</services>

【问题讨论】:

    标签: c# .net json wcf rest


    【解决方案1】:

    代码和界面看起来不错。你可以试试这个配置吗?

    <system.serviceModel>
                <behaviors>
                  <endpointBehaviors>
                    <behavior name="MyNamespace.MyClass.ExchangeBehavior">
                      <webHttp/>
                    </behavior>
                  </endpointBehaviors>
                </behaviors>
                <services>
                  <service name="MyNamespace.MyClass.Exchange">
                    <endpoint address="" binding="webHttpBinding" behaviorConfiguration="MyNamespace.MyClass.ExchangeBehavior" contract="MyNamespace.MyClass.IExchange" />
                  </service>
                </services>
           </system.serviceModel>
    

    【讨论】:

    • 我刚刚使用此 URL 使用您的配置正确调用了它:localhost:49701/Exchange.svc/… 但是如何指定要调用的方法(例如调用 MemberLogon)?
    • 取消评论 - 你是明星 :) 我只需要修改 UriTemplate。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2016-01-11
    • 1970-01-01
    相关资源
    最近更新 更多