私は Web サービスを使用するのが初めてで、国営の Web サービスにアクセスする必要があります。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 にトレースを追加したところ、次のようになりました。
セキュリティ プロセッサは、メッセージ内にセキュリティ ヘッダーを見つけることができませんでした。これは、メッセージがセキュリティで保護されていない障害であるか、通信する当事者間にバインディングの不一致があるためである可能性があります。これは、サービスがセキュリティ用に構成されていて、クライアントがセキュリティを使用していない場合に発生する可能性があります。
グーグルで調べた後、app.configにenableUnsecuredResponse = "true"を配置する必要があることがわかりました
やったけど何も起こらなかった