假设我有一个ASP.net Web服务。带* .asmx-Files的旧版本。在IIS 8上运行
当我尝试通过"添加服务参考"在具有WCF服务客户端的Visual Studio中,它不起作用。
我的问题是"基本HTTP身份验证" ..
错误消息
{"死于HTTP-Anforderung ist beim Clientauthentifizierungsschema \" Anonymous \" nicht autorisiert。 Vom Server wurde der Authentifizierungsheader \" Basic Realm = \" WebsitePanel Enterprise Server \" \" 。empfangen"}
翻译
{" HTTP请求未经授权使用客户端身份验证方案'匿名'。从服务器收到的身份验证标头是' Basic realm = \" WebsitePanel Enterprise Server \"'"}
当我使用" Web Reference"它确实有效。 [我正在使用WebsitePanel并尝试访问其Enterprise-Server Web服务(asmx文件)]
是否可以将旧的ASMX-Webservices与" WCF服务参考" -Clients一起使用? 有人可以解释这些差异,我应该使用什么?
答案 0 :(得分:1)
根据您对问题的评论,我假设您忘记提供一些身份验证信息。通过在代理对象中提供有效的用户名和密码,您应该能够调用该服务:
client.ClientCredentials.UserName.UserName = "foo";
client.ClientCredentials.UserName.Password = "bar";
client.SomeMethod();
此外,您应确保将配置设置为Transport
(或TransportCredentialOnly
和clientCredentialType="Basic"
):
<bindings>
<basicHttpBinding>
<binding name="myBinding">
<security mode="Transport">
<transport clientCredentialType="Basic" proxyCredentialType="None" realm="WebsitePanel Enterprise Server" />
</security>
</binding>
</basicHttpBinding>
</bindings>
要获取更详细的错误信息,请配置跟踪:http://msdn.microsoft.com/en-us/library/ms733025%28v=vs.110%29.aspx