2016-12-29 99 views
0

由于我们将一些网站从Windows Server 2008 R2迁移到Windows Server 2012,因此一个网站有时会从它在同一台服务器上调用的WCF服务中收到错误401。这可以工作约1-2天〜1小时,然后再失败。这似乎只发生过一次,之后它再次工作X次。WCF有时会返回401

这个问题似乎只能隔离到这个网站,还有一些其他服务器在调用这个WCF服务后迁移后没有问题。

这两个站点位于同一服务器上,但在不同的站点和appPools上。

IIS日志:从网站

[DATE1] 12:03:40 [IP1] POST ServiceName.asmx - [PORT1]- [IP2] - - 401 0 0 0 
[DATE1] 12:03:40 [IP1] POST ServiceName.asmx - [PORT1] - [IP2] - - 401 1 3221225581 0 

错误:

服务名称/过程数据 - 数据访问FunctionName-消息:该HTTP请求是未经授权的客户端身份验证方案协商'。从服务器收到的验证头是'Negotiate,NTLM'。堆栈跟踪:

配置:

该网站使用域帐户来访问它使用的身份验证模式Windows WCF服务。

网站结合

<binding name="ReportSummaryFacadeSoap" 
     closeTimeout="00:01:00" openTimeout="00:01:00" 
     receiveTimeout="00:10:00" sendTimeout="00:01:00" 
     allowCookies="false" bypassProxyOnLocal="false" 
     hostNameComparisonMode="StrongWildcard" 
     maxBufferSize="65536" maxBufferPoolSize="524288" 
     maxReceivedMessageSize="65536" 
     messageEncoding="Text" textEncoding="utf-8" 
     transferMode="Buffered" useDefaultWebProxy="true"> 
     <readerQuotas maxDepth="32" maxStringContentLength="8192" 
      maxArrayLength="16384" maxBytesPerRead="4096" 
      maxNameTableCharCount="16384"/>   
     <security mode="TransportCredentialOnly">    
      <transport clientCredentialType="Windows" 
        proxyCredentialType="None" realm=""/> 
      <message clientCredentialType="UserName" 
        algorithmSuite="Default"/> 
     </security> 
</binding> 

我希望有人能对这个线索。

随着亲切的问候

帕特里克

回答

0

这是由于在Hyper-V负载平衡,这是不正确可配置。在会话持续时间的配置有点低的情况下,所以当它开始呼叫第一台机器和几个呼叫后,它在负载平衡中切换到第二台机器,导致401响应。