Web ベースのアプリケーションで 2 年以上使用してきた ASP.Net クラスのコードがいくつかあります。コマンドラインツールで同様のビジネス機能を実行しようとしています。両方のアプリケーションで同じコードを使用していますが、コマンド ライン アプリケーションは、コードの下部にある「GetRequestStream」の呼び出しでタイムアウトしています。
req と req2 を使い終わったときに閉じると、GetRequestStream の呼び出しが機能するようになりました。ただし、req3 が認証されるためには、req と req2 を開いたままにしておく必要があります。そのため、req と req2 を開いたままにしておくと、GetRequestStream がタイムアウトします。req と req2 を閉じると、GetRequestStream の呼び出しは機能しますが、req3 は認証に失敗します。
前述したように、まったく同じコードが Web ベースの ASP.Net アプリケーションとして正常に動作します。このクラスを使用してコンソール ベースのアプリケーションとしてビルドする場合にのみ、これらの問題が発生します。
これは接続に関するものに違いないと考えていますが、.Net からコマンド ライン アプリを構築するのはかなり初めてです。
どんな助けでも大歓迎です。
string uri = baseUri + "auth/authrequired";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
req.Timeout = 1000000;
req.Proxy = null;
req.CookieContainer = cc;
var MyWebResponse = (WebResponse)req.GetResponse();
uri = baseUri + "authenticated/identity";
HttpWebRequest req2 = (HttpWebRequest)WebRequest.Create(uri);
req2.Timeout = 1000000;
req2.Proxy = null;
req2.CookieContainer = cc;
MyWebResponse = req2.GetResponse();
uri = baseUri + "j_security_check";
string reqParams = "j_username=" + "jmclaughlin" + "&j_password=" + "jmclaughlin";
byte[] reqData = Encoding.UTF8.GetBytes(reqParams);
HttpWebRequest req3 = (HttpWebRequest)WebRequest.Create(uri);
req3.Timeout = 1000000;
req3.Proxy = null;
req3.CookieContainer = cc;
req3.Method = "POST";
req3.ContentType = "application/x-www-form-urlencoded";
req3.AllowAutoRedirect = true;
req3.ContentLength = reqData.Length;
using (var s = req3.GetRequestStream())
s.Write(reqData, 0, reqData.Length);
MyWebResponse = req3.GetResponse();