我有一个本地主机网站和一个 IIS(7.5) 托管的 WCF 服务,像这样实现,并附加了一个 Visual Studio 调试器。每当我向我的服务发出 CORS 请求时,我都会收到以下 404 响应,以及标准的 ASP.Net 错误页面:
OPTIONS http://192.168.200.44/api/values HTTP/1.1
Host: 192.168.200.44
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Origin: http://localhost:51946
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Response >>
HTTP/1.1 404 Not Found
Content-Type: text/html
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Thu, 26 Sep 2013 09:38:49 GMT
Content-Length: 1245
最初我收到了错误的 200 条消息,这些消息没有触及我的 WCF 应用程序许多断点,所以它是由 IIS 本身处理的。然后我按照这个和这个SO 发布并从站点中删除了 OPTIONSVerbHandler,并在 IIS 管理器 UI(而不是 web.conf)中添加“OPTIONS、PUT、POST 和 DELETE”作为允许的 HTTP 动词,这使我进入了我的 404 消息. 我已经查看了 WebDav,它被突出显示为一个问题,但我没有禁用/删除它,因为我不知道如何但已经读到它只影响“PUT & DELETE”操作,而我的“POST”操作也是失败。
GET 请求按预期工作,因此该服务肯定存在/在 IIS 中工作,只是选项预检没有到达我的服务。
泰