我有一个WCF RESTful Web服务(使用webHttpBinding),当我尝试在其上调用Web服务方法时返回400.
如果我去mywebservice.svc,我会获得标准的WCF Web服务页面。但是如果我去/mywebservice.svc/some/rest/service/url,我会得到一个Http 400.每一次。参数或被调用的方法无关紧要。
这是我们到目前为止所看到的:
我们知道这适用于其他机器。有问题的机器在Win XP上使用VS 2010。我们正在使用WCF 4.0
我知道此处没有太多内容,因为我们没有特定的错误消息,但考虑到我们看到的地方,是否有人对下一步的位置有任何建议?
更新:添加了代码示例 这是我用一种方法的定义,以及该方法的实现。
[ServiceContract]
public interface IMAMDataWebService
{
[WebGet(UriTemplate = "/Contracts/{taxID}", ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
ContractCollection Contracts(string taxID);
}
public ContractCollection Contracts(string taxID)
{
ContractCollection contracts = new ContractCollection();
try
{
contracts = _contractService.GetContracts(taxID);
}
catch (RstsException rEx)
{
if (!rEx.Logged)
_errorLogger.LogError(rEx);
WebFault.ThrowFault(rEx, HttpStatusCode.InternalServerError);
}
catch (Exception ex)
{
RstsException rEx = new RstsException(ex);
_errorLogger.LogError(rEx);
WebFault.ThrowFault(rEx, HttpStatusCode.InternalServerError);
}
if (contracts.Count == 0)
{
WebFault.ThrowFault(Strings.ObjectNotFound, HttpStatusCode.NotFound);
}
return contracts;
}
我用网络浏览器调用它,即MAMDataWebService.svc / Contracts / 123456789
我确信这必须是权限问题,但我不确定是什么。它适用于我们使用VS 2010的所有Win 7机器,但是一些用户仍然使用XP而且他们是那些但是没有任何错误,很难说出发生了什么。