如何处理asp.net网页和托管在IIS中的WCF服务之间的跨域请求

本文关键字:WCF 中的 IIS 服务 之间 请求 处理 何处理 asp 网页 net | 更新日期: 2023-09-27 18:17:56

我写了一个WCF web服务,通过IIS-7托管在Windows Server 2012上。服务器的公共IP当前是打开的(防火墙被禁用)。我可以通过浏览器很好地获取元数据和wsdl文档,并且可以通过该IP向Visual Studio添加服务引用。然而,当我的asp.net网页调用一个WCF服务方法,它给了我一个405 -方法不允许的错误。

我认为问题在于跨域发布。我可能是错的,但这是有意义的,因为我只有在从应用程序访问wcf服务时才会出现错误。

我该如何避免这个问题?

这是我的界面:

[ServiceContract]
public interface IDataPortalWCFService
{
    [OperationContract]
    string HelloWorldTest(string u, string p);
    [OperationContract]
    string HelloWorldTest2(string u, string p, string str);
    [OperationContract]
    string HelloWorldTest3(string u, string p);
    [OperationContract]
    DataTable GetBAQResults(string u, string p, string BAQName, DataTable BAQParameters);
    [OperationContract]
    string GetBAQResultsAsJSON(string u, string p, string BAQName, string BAQParameters);
}

如何处理asp.net网页和托管在IIS中的WCF服务之间的跨域请求

在IIS中托管WCF服务时处理跨域标头本质上应该与托管在IIS中的任何其他类型的网站相同。下面的问题应该能帮你找到解决办法……

IIS 7.5的CORS设置

解决此问题的另一种方法是简单地重用域。

。对于您的网站使用:-

www.mygreat.com

和你的API使用

api.mygreat.com