我是使用网络服务的新手,我必须访问国营网络服务。我得到了一个 app.config 文件、一个证书文件 (.cer) 和一些一般说明。
以前没有使用过 Visual Studio 2008 Express,但我在编写 vb5/6 代码方面有 15 年的经验。
无论如何,我使用 mmc 安装了 .cer 文件,然后打开了一个新项目并添加了 System.Runtime.Serialization 和 System.ServiceModel 我添加了对 WSDL 链接的服务引用我在项目中包含 app.config 文件并编写了以下代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EchoSvcClientConsAppl
{
class Program
{
static void Main(string[] args)
{
ConAp66.myserviceref.ServiceClient clientProxy = new ConAp66.myserviceref.ServiceClient();
clientProxy.ClientCredentials.UserName.UserName = "xx";
clientProxy.ClientCredentials.UserName.Password = "xx";
clientProxy.Open();
if (clientProxy != null)
System.Console.WriteLine("init succeeded ");
else
System.Console.WriteLine("init error");
String ar1 = "xxx";
String ar2 = "xxx";
String ar3 = "xxx";
ConAp66.myserviceref.eRes r = clientProxy.getRes1(ar1, ar2, ar3);
if (r.status != null)
System.Console.WriteLine("ok");
else
System.Console.WriteLine(r.error);
clientProxy.Close();
System.Console.ReadLine();
}
}
}
我在线收到错误消息:ConAp66.myserviceref.eRes r = clientProxy.getRes1(ar1, ar2, ar3);
说我有令牌认证问题
任何线索???非常感谢您的帮助,因为我真的不知道该怎么做...
更新:
我将跟踪添加到 app.config 并得到:
安全处理器无法在邮件中找到安全标头。这可能是因为消息是不安全的错误,或者是因为通信双方之间存在绑定不匹配。如果为安全配置了服务并且客户端未使用安全性,则可能会发生这种情况。
经过一番谷歌搜索后,我发现应该将 enableUnsecuredResponse="true" 放在我的 app.config 中
我这样做了,但什么也没发生