C# 访问web服务上的方法时发生异常

C# 访问web服务上的方法时发生异常,c#,xml,web-services,C#,Xml,Web Services,我正在编写一个客户端应用程序,它将使用Web服务,并且应该能够获取数据。使用webservice的wsdl,我在客户端应用程序中生成了代理类。我遵循添加服务引用的方法来生成代理。现在,当我试图访问Web服务上的方法时,我得到了一个错误:没有提供UsernameToken和签名。我的第一个怀疑是它需要凭据,我试图在代码中提供这些凭据。但我仍然看到了这个问题。我在代码中提供凭据的原因是因为我们有两个web服务,一个是QA,另一个是生产。它们的wsdl是相同的,但凭据是不同的,因此我将对凭据进行配置,

我正在编写一个客户端应用程序,它将使用Web服务,并且应该能够获取数据。使用webservice的wsdl,我在客户端应用程序中生成了代理类。我遵循添加服务引用的方法来生成代理。现在,当我试图访问Web服务上的方法时,我得到了一个错误:没有提供UsernameToken和签名。我的第一个怀疑是它需要凭据,我试图在代码中提供这些凭据。但我仍然看到了这个问题。我在代码中提供凭据的原因是因为我们有两个web服务,一个是QA,另一个是生产。它们的wsdl是相同的,但凭据是不同的,因此我将对凭据进行配置,以便最终用户可以根据他们想要访问的web服务输入凭据

如果我缺少什么,请告诉我。谢谢

以下是我的代码这是一个测试webservice调用的小测试片段:

GetApplicationServiceClient client= new GetApplicationServiceClient();          
        client.ClientCredentials.UserName.UserName = "userId";
        client.ClientCredentials.UserName.Password = "password";           
        int[] input= new int[3]{1,2,3};
        GetAppResponse response= new GetAppResponse();
       foreach (var item in input)
       {
         response = client.getAppById(item);
       }
这是我的配置文件:

<configuration>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="GetApplicationServiceSoapBinding">
                <security mode="Transport" />
            </binding>
            <binding name="GetApplicationServiceSoapBinding1" />
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="https://TestService.com/bo-service/v2/ws/get-application"
            binding="basicHttpBinding" bindingConfiguration="GetApplicationServiceSoapBinding"
            contract="TestService.GetApplicationService" name="GetApplicationServicePort" />
    </client>
</system.serviceModel>

假设您的web服务通过基本身份验证提供传输安全性,请尝试以下操作

     ...
        <binding name="GetApplicationServiceSoapBinding">
            <security mode="Transport">
                <transport clientCredentialType="Basic" />
            </security>
        </binding>
     ...