【问题标题】:jsonp with wcf works with vs.net server but NOT on IIS带有 wcf 的 jsonp 适用于 vs.net 服务器,但不适用于 IIS
【发布时间】:2011-12-15 16:34:42
【问题描述】:

这让我发疯了。我有一个输出 jsonp 的 .net 4 wcf 服务。它可以使用带有 vs.net 的内置 Web 服务器,但是如果我尝试在 Windows 7 64 位的 iis7 中托管,我没有得到任何响应。

如果我在 iis7 中尝试导航到 svc 文件,我会得到

“此服务的安全设置需要‘匿名’身份验证,但托管此服务的 IIS 应用程序未启用它。”

如果尝试通过客户端 jquery jsonp 请求访问,我不会从 iis7 中托管的服务获得任何响应

因此,当托管在 vs.net 网络服务器中时,服务 (web.config) 的配置很好(只是不适用于 iis)

这里是配置

   <system.serviceModel>
  <behaviors>
    <endpointBehaviors>
      <behavior name="webHttpBehavior">
        <webHttp />
      </behavior>
    </endpointBehaviors>
  </behaviors>
  <bindings>
    <webHttpBinding>
      <binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" />
    </webHttpBinding>
  </bindings>
  <services>
    <service name="ServiceSite.CustomersService">
      <endpoint address="" binding="webHttpBinding"
                bindingConfiguration="webHttpBindingWithJsonP" contract="ServiceSite.CustomersService"
                behaviorConfiguration="webHttpBehavior"/>
    </service>
  </services>
</system.serviceModel>

<system.web>
    <compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

该站点必须是 ntlm/windows 安全的。 我将以下内容添加到 web.config 绑定部分

            <security mode="TransportCredentialOnly">
          <transport clientCredentialType="Ntlm"/>
        </security>

当浏览 svc 文件时,我现在得到跨域 javascript 回调在经过身份验证的服务中不受支持 真的吗?这个真的jsonp不支持吗?

【问题讨论】:

    标签: wcf iis jsonp


    【解决方案1】:

    这可能是网站配置错误的症状。转到 IIS 管理器上网站的身份验证功能并确保已设置。

    【讨论】:

    • 该站点必须禁用匿名身份验证(它必须是 ntlm 安全的)。抱歉,我没有在问题中记录。
    【解决方案2】:

    我很确定,因为 JSONP 跨域如何解决当今您必须实现自己的自定义安全系统的缺点。

    我使用 SSL 和 HMAC 安全性进行 JSONP 跨域身份验证。我自己在服务上进行身份验证。

    在执行 JSONP 时,您不能在请求上设置标头或任何内容,因为它是通过添加标签而不是实际的 XMLHTTP 请求对象来完成的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      相关资源
      最近更新 更多