我有一个在 .NET 4.5 上运行的 ASP.NET WEB API 代码,带有 MVC 4.0 RC 和 EF 5.0 Pre-release。这是在 IIS 7.5、Win server 2008 R2 Datacenter 上运行的。
现象是这样的:
当本地调用 POST 到本地主机(在 IIS 上)时,一切正常,我被重定向到创建的对象作为状态为 201 的响应页面(它在响应标头中设置)。
但是从外部 URL 调用时,我没有得到任何响应。代码运行良好,没有例外,但例如在 chrome 开发人员工具中,我看不到任何响应。它说请求已被取消。
不管我怎么尝试,都无法解决这个问题。同一个 IIS 文件夹上的完全相同的代码可以从本地调用正常运行,但对于远程调用 - 不返回任何内容。这发生在 2 个不同的控制器上。
但是,其他调用(例如 Get)适用于本地和远程调用。
这是构建响应的 POST 方法中的控制器代码:
HttpResponseMessage response = this.Request.CreateResponse<Movie>(HttpStatusCode.Created, Movie);
string uri = Url.Route(null, new { id = Movie.Id });
response.Headers.Location = new Uri(Request.RequestUri, uri);
return response;
非常感谢您的帮助!
谢谢!