gpt4 book ai didi

wcf - OPTIONS 预检请求未到达 IIS 托管服务

转载 作者:行者123 更新时间:2023-12-03 21:37:36 24 4
gpt4 key购买 nike

我有一个本地主机网站和一个 IIS(7.5) 托管的 WCF 服务 implemented like this附带一个 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 本身处理。然后我关注了 thisthis SO 发布并从站点中删除了 OPTIONSVerbHandler,并在 IIS 管理器 UI(而不是 web.conf)中添加了“OPTIONS、PUT、POST 和 DELETE”作为允许的 HTTP 动词,这让我看到了 404 消息。我已经查看了 WebDav,它被突出显示为一个问题,但我没有禁用/删除它,因为我不知道如何但读到它只影响“PUT & DELETE”操作,而我的“POST”操作也是失败。

GET 请求按预期工作,因此该服务肯定存在/在 IIS 中工作,只是 Options 预检没有到达我的服务。

TY

最佳答案

尽管 OP 设法找到了适用于他们特定情况的解决方案,但在过去的几个小时里,同样的问题一直困扰着我。
就我而言,我知道这不是代码/web.config 问题,因为相同的代码在我的本地 IIS 上运行得非常好,但在生产版本上却没有。

在阅读了大量帖子并尝试了他们建议的所有内容(包括 OP 的答案)后,我实际上开始查看 IIS 日志(应该先这样做!)并发现:

2015-03-09 14:43:39 <IP Addr> GET /Rejected-By-UrlScan ~/Service.svc/H2dbImportTxtFile <Port> - <IP Addr>

这也导致我:

http://www.pressthered.com/rejected-by-urlscan_404_errors/

最终 [AllowVerbs] 部分:

\system32\inetsrv\urlscan\UrlScan.ini



我只需要添加选项。

现在 OPTIONS 请求通过了,一切正常。

希望能帮助其他被逼疯的人。

编辑:

正如另一篇 SO 帖子中所述(恐怕我现在已经丢失了),由于我的是 WCF 服务,因此我还必须将监听服务的界面从以下位置更改:

[WebInvoke(Method = "POST", etc]





[WebInvoke(Method = "*", etc]

关于wcf - OPTIONS 预检请求未到达 IIS 托管服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19025285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com