平台:VS 2008,.NET 3.5,C#,Oracle 11g
我创建了一个WCF服务,它接受一些数据元素,然后将它们插入到数据库表中并返回一个整数.我还创建了一个小的ASP.NET Web应用程序来测试该服务.测试Web应用程序只有一个包含字段和按钮的页面,单击该按钮实际调用Web服务以插入数据并返回整数值.
我采取的步骤:
当我在我的计算机上部署WCF和测试Web应用程序时,它工作正常 - Windows XP,IIS 5.1.但是,每当我尝试在远程服务器上部署它时,它都不起作用.当我尝试使用该服务(部署在远程服务器上 - Windows 2003服务器,IIS 6)时,我收到以下错误:
无法满足安全令牌请求,因为身份验证失败.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.ServiceModel.FaultException:无法满足安全令牌请求,因为身份验证失败.
以下是.config文件内容:
调用ASP.NET Web应用程序(Consumer)的Web.Config的wcf部分:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IMyWCFService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true"
algorithmSuite="Default" establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://57.23.85.28:8001/MyWCFService/MyWCFService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMyWCFService"
contract="IMyWCFService" …Run Code Online (Sandbox Code Playgroud)