1

我有一个使用 IISExpress 在本地运行的 ASP.NET WebApi 应用程序,它允许我接受来自任何域的请求。我正在使用与此 blob postDelegatingHandler提供的类似的方法来执行此操作。

在本地运行完美,但是在上传到 Azure 网站后,我'Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.'在 Chrome 下得到了典型的。

我试图通过在没有输出的情况下将跟踪语句添加到处理程序中来对此进行调试,并且似乎 SendAsync 从未被执行,几乎就像 IIS 正在响应 OPTIONS 请求而不是将其传递给我的应用程序一样。

从开发到生产有没有人遇到过类似的事情?

4

1 回答 1

3

IIS(包括 Azure 网站中的那个)有一个默认的 OPTIONS 处理程序。您需要在 Web.config 中将其删除。它会在您的消息处理程序有机会响应之前响应 OPTIONS 调用。

<configuration>
  ...
  <system.webServer>
    <handlers>
      <remove name="OPTIONSVerbHandler" />
      ...
    </handlers>
  </system.webServer>
</configuration>
于 2013-06-21T11:53:22.417 回答