WCF REST - 无参数GET无法正常工作

时间:2014-04-29 09:36:48

标签: wcf rest

我试图让最基本的操作适合我的WCF宁静服务。

我在本地计算机上有服务。我们称之为TeskService:

http://localhost:52309/Services/TaskService.svc

在后端,我有一个WebGet:

[ServiceContract]
public interface ITaskService
{  
    [WebGet]
    void CreateTask();

}

如果我在浏览器中输入以下内容,则不会触发任何内容(我得到404):

http://localhost:52309/Services/TaskService.svc/CreateTask

如果我将我的定义更改为接受参数:

[WebGet(UriTemplate="CreateTask/*")]
void CreateTask();

然后传递任何值:

http://localhost:52309/Services/TaskService.svc/CreateTask/randomText

然后该方法触发。

我不想传递任何东西。我只想要解雇方法。我做错了什么?

根据这个链接:

http://msdn.microsoft.com/en-us/library/bb412172(v=vs.110).aspx

他们有

[ServiceContract]
interface ICustomer
{
  //"View It"

  [WebGet]
  Customer GetCustomer():


}

并使用/ GetCustomer调用它应该没问题。

想法?思考?灵感?

事实证明,这对我来说比应该更加困难。

编辑:

它可能会受到同一项目中我的MVC路由的影响吗?

routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new
{
    controller = "Home",
    action = "Index",
    id = UrlParameter.Optional
}
);

1 个答案:

答案 0 :(得分:-1)

如果您使用[WebGet]

    [ServiceContract]
    public interface ITaskService
    {  
       [WebGet]
       void CreateTask();
    }

然后您可以使用http://localhost:52309/Services/TaskService.svc/CreateTask拨打电话。

如果您使用[WebGet(UriTemplate="")]

    [ServiceContract]
    public interface ITaskService
    {  
      [WebGet(UriTemplate="")]
      void CreateTask();
    }

然后您可以使用http://localhost:52309/Services/TaskService.svc拨打电话。