我的應用程序是使用WCF服務的C#Windows服務。當第一個「預期失敗(417)」錯誤,我改變都ServicePointManager.Expect100Continue
和ServicePoint.Expect100Continue
到false
:正確處理期望失敗(417)並更改WCF客戶端應用程序中的Expect100Continue
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
}
}
但是,該服務的第二個呼叫也會失敗。但是,如果在任何連接之前將Expect100Continue
設置爲false
,則與該服務的通信將正常工作。
這樣正確處理Expect100Continue
錯誤嗎?我需要應用程序自動適應而無需用戶操作。我忘了做什麼工作?
我將'WebRequest.DefaultWebProxy'傳遞給'FindServicePoint'並且它可以工作。 –