【问题标题】:WCF URL host segment is changed to full domain nameWCF URL 主机段更改为完整域名
【发布时间】:2009-02-20 16:36:08
【问题描述】:

我有一个通过 AJAX 从 WCF REST 服务获取 HTML 内容的页面。我开始在 IE 上看到错误,大意是“此页面正在访问不受其控制的信息......”。对于某些内容,WCF 服务不会直接返回内容,而是返回一个对象或 iframe 标记,该对象或 iframe 标记以不同的参数指向自身。 WCF 服务看到的 URL 与请求的不同,并且差异导致“安全”错误,因为 IE 认为它正在从不同的域加载内容。

例如,XHR 请求要求

http://localhost/Services/Content.svc?id=123...” 甚至 "http://mymachine/Services/Content.svc?id=123..."

但是,一旦请求到达 WCF 服务,URL 就会变成:

http://mymachine.mydomain.com/Services/Content.svc?id=123...”

如何在 WCF 服务中获取最初请求的 URL?我检查了 WebOperationContext.Current.IncomingRequest.UriTemplateMatch 属性无济于事,没有“localhost”的剩余痕迹。我还查看了以下帖子,但仍然找不到原始 URL:

What is the WCF equivalent of HttpContext.Current.Request.RawUrl?

http://jstawski.com/archive/2008/05/01/wcf-wsdl-location-address-with-https.aspx

有什么办法吗?

【问题讨论】:

  • 这种行为是否只发生在 IE 中?
  • 是的,只有 IE7 抱怨安全问题。在 FF3、Chrome 1.0 上运行良好。没有在 IE6 中测试过...

标签: c# wcf


【解决方案1】:

请注意,在 IIS 中运行的任何服务都将使用 IIS 绑定中指定的主机名。要更改此设置,您需要更改 IIS 中的设置。

【讨论】:

    猜你喜欢
    • 2014-03-04
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    相关资源
    最近更新 更多