Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
集成Windows身份验证WCF多主机头IIS 6不工作_Wcf_Internet Explorer_Authentication_Iis 6 - Fatal编程技术网

集成Windows身份验证WCF多主机头IIS 6不工作

集成Windows身份验证WCF多主机头IIS 6不工作,wcf,internet-explorer,authentication,iis-6,Wcf,Internet Explorer,Authentication,Iis 6,我有一个asp.NET2.0网站,里面有WCF服务,运行在.NET3.5框架上。该网站仅使用集成Windows身份验证进行设置。web服务器是IIS 6,在Windows 2003 Sp2服务器上具有负载平衡。我无法使用完整url访问WCF服务.svchttp://myqa2.abcdefg.com/trxn/WCFTrxnService.svc. 还要注意,服务器配置了多个主机头。本网站受siteminder保护。起初我犯了一个错误 此集合已包含具有方案http的地址。此集合中每个方案最多只能

我有一个asp.NET2.0网站,里面有WCF服务,运行在.NET3.5框架上。该网站仅使用集成Windows身份验证进行设置。web服务器是IIS 6,在Windows 2003 Sp2服务器上具有负载平衡。我无法使用完整url访问WCF服务.svchttp://myqa2.abcdefg.com/trxn/WCFTrxnService.svc. 还要注意,服务器配置了多个主机头。本网站受siteminder保护。起初我犯了一个错误

此集合已包含具有方案http的地址。此集合中每个方案最多只能有一个地址。参数名称:item

因此添加了以下配置条目

<serviceHostingEnvironment>
  <baseAddressPrefixFilters>
    <clear/>
    <add prefix="http://myqa2.abcdefg.com"/>
  </baseAddressPrefixFilters>
</serviceHostingEnvironment>
那个错误消失了,但现在浏览器提示我登录。对于同一个网站,我可以访问.aspx页面。登录提示仅针对.svc文件显示

下面是我正在使用的配置文件中的绑定/端点

<system.serviceModel>
<serviceHostingEnvironment>
  <baseAddressPrefixFilters>
    <clear/>
    <add prefix="http://myqa2.abcdefg.com"/>
  </baseAddressPrefixFilters>
</serviceHostingEnvironment>
<bindings>
  <basicHttpBinding>
    <binding name="IISIntegratedAuthBinding">
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows"/>
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="TestWCFFromSL.Web.WCFTrxnServiceBehavior">
      <serviceMetadata httpGetEnabled="true" httpGetUrl="http://myqa2.abcdefg.com/fmc/WCFNotesService.svc"/>
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<services>
  <service name="TestWCFFromSL.Web.WCFTrxnService" behaviorConfiguration="TestWCFFromSL.Web.WCFTrxnServiceBehavior">
    <endpoint
      address="http://myqa2.abcdefg.com/trxn/WCFTrxnService.svc"
      binding="basicHttpBinding"
      bindingConfiguration="IISIntegratedAuthBinding"
      contract="TestWCFFromSL.Web.IWCFTrxnService" />
  </service>
</services>
<!--<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>-->

如果网站受到SiteMinder的保护,WCF/SOAP调用将无法工作。但这个问题的另一种解决方案正在发挥作用

URL myqa2.abcdefg.com/trxn/WCFTrxnService.svc受SiteMinder保护,但 myqa2/trxn/WCFTrxnService.svc不受siteminder保护,看起来siteminder只保护FQDN完全限定的域名。因此,我将应用程序配置为使用短url而不是FQDN调用WCF服务。我还必须使用crossdomainpolicy,因为应用程序将myqa2.abcdefg.com和myqa2视为两个独立的域