2010-10-11 39 views
1

我有一個運行在.NET 3.5框架上的WCF服務託管的asp.net 2.0網站。該網站僅設置了集成Windows身份驗證。 Web服務器是IIS 6,在Windows 2003 Sp2(2臺服務器)上進行負載平衡。我無法使用完整的URL訪問WCF服務(.svc)(http://myqa2.abcdefg.com/trxn/WCFTrxnService.svc)。另請注意,服務器配置了多個主機標頭。該網站受siteminder的保護。最初我得到一個錯誤集成Windows身份驗證WCF多個主機頭IIS 6不工作

這個集合已經包含一個地址與方案http。此集合中每個方案最多可以有一個地址。參數名:項目

因此增加了以下配置項

<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"/>--> 

回答

0

,如果一個網站是由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視爲2個獨立的域。