【发布时间】:2012-03-28 13:01:13
【问题描述】:
我在 IIS 中有一个部分工作的 WCF 服务。我的 GET 请求工作正常,但 POSTS 仅在我使用 Visual Studio 时才有效。当我使用 IIS 时,我收到错误 400 错误请求。任何人都可以帮助解决这个问题。这是部分代码。
类
public string AddHost(Host host)
{
HostDal dal = new HostDal();
dal.CreateHost(host);
return Utils.Message;
}
界面
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/addhost", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
string AddHost(Host host);
使用 Fiddler 我发布这样的 json:
{
"名称":"newhost19",
"Mac":"ca:99:11:22:33:43",
"图像":"测试",
“组”:“测试”,
"描述":"测试",
“内核”:“测试”,
"BootImage":"测试",
“参数”:“测试”,
“脚本”:“测试”
}
就像我说的,如果我使用 IIS 发布到 http://localhost/web/ClientSvc.svc/addhost,我会收到错误 400。
如果我使用 VS 发布到 http://localhost:49807/web/ClientSvc.svc/addhost 它工作正常
谢谢
【问题讨论】:
-
当您转到localhost/web/ClientSvc.svc 时,您会看到服务公告页面吗?
-
是的。这很奇怪,因为该服务正在运行。我也有一些可以正常工作的GETS。只有 POST 没有。
-
如果有人感兴趣,最终是文件夹权限问题。我仍然不确定GETS为什么起作用。
-
你应该回答你自己的问题并接受它。