使用WCF服务参考的ASP.net Webservice * .asmx访问

时间:2015-01-04 15:37:47

标签: c# asp.net iis

假设我有一个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一起使用? 有人可以解释这些差异,我应该使用什么?

1 个答案:

答案 0 :(得分:1)

根据您对问题的评论,我假设您忘记提供一些身份验证信息。通过在代理对象中提供有效的用户名和密码,您应该能够调用该服务:

client.ClientCredentials.UserName.UserName = "foo";
client.ClientCredentials.UserName.Password = "bar";
client.SomeMethod();

此外,您应确保将配置设置为Transport(或TransportCredentialOnlyclientCredentialType="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