我有一个使用IISExpress在本地运行的ASP.NET WebApi应用程序,它允许我接受来自任何域的请求。我使用与DelegatingHandler
提供的'Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.'
类似的{{1}}来执行此操作。
本地运行完美但是在上传到Azure网站后,我得到了Chrome下的典型{{1}}。
我尝试通过在没有输出的情况下将跟踪语句添加到Handler中来调试它,似乎从不执行SendAsync,几乎就像IIS响应OPTIONS请求而不是将其传递给我的应用程序。 / p>
有没有人遇到过从开发到生产的任何类似的事情?
答案 0 :(得分:3)
IIS(包括Azure网站中的一个)具有默认的OPTIONS处理程序。您需要在Web.config中删除它。它会在您的消息处理程序有机会响应之前回答OPTIONS调用。
<configuration>
...
<system.webServer>
<handlers>
<remove name="OPTIONSVerbHandler" />
...
</handlers>
</system.webServer>
</configuration>