私のアプリケーションは、WCFサービスを使用するC#Windowsサービスです。最初の「期待に失敗しました(417)」エラーが発生したとき、両方ServicePointManager.Expect100Continue
とServicePoint.Expect100Continue
を次のように変更しfalse
ます。
try
{
//ServicePointManager.Expect100Continue = false; // If uncomment all work
var svc = new ServiceClient();
svc.GetData(); // first error
}
catch (ProtocolException pex)
{
if (pex.Message.Contains("(417)"))
{
ServicePointManager.Expect100Continue = false;
var sp = ServicePointManager.FindServicePoint(new Uri(@"http://addr.to.service/service.svc"));
sp.Expect100Continue = false;
var svc = new ServiceClient();
svc.GetData(); // second same error
}
}
ただし、サービスへの2番目の呼び出しも失敗します。ただし、接続前に設定Expect100Continue
するfalse
と、サービスとの通信は正常に機能します。
Expect100Continue
この方法でエラーを正しく処理できますか?アプリケーションがユーザーの操作なしで自動的に適応する必要があります。この仕事をするのを忘れているのは何ですか?