我有一个看起来像这样的网络服务:
[WebInvoke(UriTemplate = "/{userName}/?key={key}&machineName={machineName}", Method = "PUT")]
public HttpResponseMessage<SomeStuffPutResponse> PutSomeStuff(string userName, string key, string machineName, string theTextToPut)
{
// do stuff
}
我的 global.asx 看起来像:
RouteTable.Routes.MapServiceRoute<SomeStuffService>("1.0/SomeStuff", new HttpHostConfiguration());
当我通过 C# HttpClient 或 fiddler 访问 Web 服务时,它会抛出 500,甚至无法访问我的方法。我添加了一堆日志记录并收到以下错误:
服务操作“PutSomeStuff”期望为输入参数“requestMessage”分配一个可分配给“String”类型的值,但接收到“HttpRequestMessage`1”类型的值。
更新:如果我将 TextToPut 变量设为自定义对象,它可以正常工作。如果它是像字符串这样的原始类型,它只会给我带来问题。