我试图让最基本的操作适合我的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
}
);
答案 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
拨打电话。