我是网络服务的新手,我遇到了以下问题。我有一个在IIS 7.5和Windows 2008 R2上以Windows身份验证模式运行的WCF服务。 当我直接从IIS机器调用它时它很好用。 但是,当我尝试从本地计算机调用服务时,我收到以下错误:401 - 未经授权:由于凭据无效,访问被拒绝。
该服务在本地计算机上工作了几天,然后突然停止了(我不确定,但有些配置可能已更改)。
我直接从IExplorer致电服务:http://serveriis/ssopension/service.svc
的web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>O8jBoF9YUW3sZtSN+L/Xxhzss=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>C+EeTszivHho8Ujk2oIQ==</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
<system.web>
<compilation targetFramework="4.0" />
<authentication mode="Windows" />
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
</system.web>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpEndpointBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="SSO_Pension.ServiceBehavior" name="SSO_Pension.Service">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpEndpointBinding" name="BasicHttpEndpoint" contract="SSO_Pension.IService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SSO_Pension.ServiceBehavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true" />
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<system.webServer>
<defaultDocument>
<files>
<add value="Service.svc" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
答案 0 :(得分:4)
无论这对谁有所帮助,这都挽救了我的生命......
IIS 7很难弄清楚为什么我要获得401 - 未经授权:由于凭证无效,访问被拒绝...直到我 这样做了......
1。)打开iis并选择导致401的网站
2.。)打开“IIS”标题下的“身份验证”属性
3.单击“Windows身份验证”项,然后单击“提供者”
4。)对我来说,问题是谈判高于NTLM。我假设在幕后发生了某种握手,但我确实如此 从未真正认证过。我把NTLM搬到了最顶端的地方,并且 修正它的BAM。
答案 1 :(得分:0)