SSL/TLS またはエンドポイントの有無にかかわらず、次のような wcf sercue のすべての例外をキャッチしようとしました。
try
{
ServiceReference.ServiceClient serviceClient = new ChartLogicServiceClient();
serviceClient.Open();
serviceClient.Login("", "", "");
}
catch (SecurityNegotiationException negotiationException)
{
// Could not establish trust relationship for the SSL/TLS secure channel with authority 'localhost'.
throw;
}
catch (ArgumentException argumentException)
{
// transport wrong config : The provided URI scheme 'https' is invalid; expected 'http'.
//if (argumentException.Message == "The provided URI scheme 'http' is invalid; expected 'https'.\r\nParameter name: via")
throw;
}
catch (MessageSecurityException messageSecurityException)
{
// transport wrong config: The HTTP request was forbidden with client authentication scheme 'Anonymous'.
//- HTTP Request Error
if (messageSecurityException.InnerException.Message == "The remote server returned an error: (403) Forbidden.")
{
throw;
}
else if (messageSecurityException.InnerException.Message == "The remote server returned an error: (404) Forbidden.")
{
throw;
}
}
catch (EndpointNotFoundException endpointNotFoundException)
{
// no endpoint was found or IIS on server was turned off
}
メソッドを呼び出さずに wcf サービスが利用可能かどうかを確認できますか (Open() を試しましたが、まったく機能しませんでした)。WCF サービスから例外のすべてのケースをキャッチできるかどうかわかりませんか? 私の目的は、クライアントが SSL/TSL またはエンドポイントなしで wcf 例外を取得した場合、小さなユーティリティ コンソールを実行してクライアントの app.config を修正し、wcf エンドポイントと . あなたの提案が本当に必要です。ありがとう