私は多くの人が経験した問題を抱えていますが、オンラインで利用できる解決策はすべて、そのシナリオに固有のものです。私は利用可能な提案を試しましたが、私が試したのはまだ運がありません:
1.) req.KeepAlive = false;
2.) req.ProtocolVersion = HttpVersion.Version10; (this solved a different exception that I was getting)
XML文字列をサーバーに渡し、応答を取得する2つのメソッドがあります。2つのメソッドは次のとおりです。
public string userDeviceQuery(string userID)
{
string query = "xml=<query>";
query += "<appInfo>";
query += "<appID>" + appID + "</appID>";
query += "<appCertificate>" + appCertificate + "</appCertificate>";
query += "</appInfo>";
query += "<userDevicesQuery>";
query += "<userID>";
query += userID;
query += "</userID>";
query += "</userDevicesQuery>";
query += "</query>";
using (Stream str = req.GetRequestStream())
{
str.Write(System.Text.Encoding.ASCII.GetBytes(query), 0, query.Length);
}
WebResponse res = req.GetResponse();
string stringResponse;
using (StreamReader reader = new StreamReader(res.GetResponseStream()))
{
stringResponse = reader.ReadToEnd();
}
string result = parseDeviceQueryRes(stringResponse);
return result;
}
と
public void logoutOfEM(string deviceName)
{
string lgRequest = "xml=<request>";
lgRequest += "<appInfo>";
lgRequest += "<appID>" + appID + "</appID>";
lgRequest += "<appCertificate>" + appCertificate + "</appCertificate>";
lgRequest += "</appInfo>";
lgRequest += "<logout>";
lgRequest += "<deviceName>";
lgRequest += deviceName;
lgRequest += "</deviceName>";
lgRequest += "</logout>";
lgRequest += "</request>";
using (Stream str = req.GetRequestStream())
{
str.Write(System.Text.Encoding.ASCII.GetBytes(lgRequest), 0, lgRequest.Length);
}
WebResponse res = req.GetResponse();
using (StreamReader reader = new StreamReader(res.GetResponseStream()))
{
stringResponse = reader.ReadToEnd();
}
string stringResponse = reader.ReadToEnd();
}
どちらも EMAPI と呼ばれるクラスの一部です。両方のメソッドを別々に使用することはできますが、EMAPI を表す同じオブジェクトでそれらを連続して使用しようとすると、上記の例外が発生します。接続が閉じられる原因がわかりません。可能であれば、デコンストラクターを使用して接続を開いたままにして閉じることができるようにしたいと考えています。
このコードが Cisco エクステンション モビリティ API を扱っていることに興味がある人のために、最初のメソッドはサーバにクエリを実行してログインしているデバイスを取得し、2 番目のメソッドはユーザをそのデバイスからログアウトさせます。
助けてくれてありがとう。