【发布时间】: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不支持吗?
【问题讨论】: