visual-studio - 在 WCF 中设置 ClientCredentials 时出现 "Object is read only"错误

标签 visual-studio wcf

我有一个由 Visual Studio(客户端)生成的名为 ServerClient 的代理对象。我尝试在使用以下代码打开新连接之前设置 ClientCredentials.UserName.UserName/Password:

InstanceContext context = new InstanceContext(this);

m_client = new ServerClient(context);
m_client.ClientCredentials.UserName.UserName = "Sample";

一旦代码到达 UserName 行,它就会失败并出现“对象是只读的”错误。我知道如果连接已经打开或出现故障,就会发生这种情况,但此时我还没有调用 context.Open() 。

我已将绑定(bind)(使用 netTcpBinding)配置为使用 Message 作为其安全模式,并将 MessageClientCredentialType 设置为 UserName。

有什么想法吗?

最佳答案

我注意到,在为服务创建代理类的实例后,我可以设置一次用户名和密码,不会出现错误,并成功调用我的 Web 服务。然后,当我尝试在现有实例上再次设置用户名和密码时(当然不必要),我收到您提到的“对象是只读”错误。每个实例生命周期设置一次值对我来说很有效。

关于visual-studio - 在 WCF 中设置 ClientCredentials 时出现 "Object is read only"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/199014/

相关文章:

c# - Visual Studio 2015 中的 MySQL 网站配置失败

c# - ASP.NET 5 MVC 6 中的 web.config

c# - 将 net.tcp 用于 STS 的问题

c# - wcf 决定 : one service multiple contracts or many services

visual-studio - VS2019 在线扩展列表为空。然后满。然后又空了

windows - 无法在 Visual C++ (2017) 中设置 UDP_CHECKSUM_COVERAGE 选项

c - Timespec 重新定义错误

c# - WCF 用户名身份验证 : Can I get the Username in a custom ServiceAuthorizationManager?

c# - Nuget hell : Cannot reference NuGet package in UWP application due to public key difference

visual-studio - Team Foundation Server(TFS)文件差异查看器-使用其他工具进行自定义