위해 나는 지금 2 년 내 웹 기반 응용 프로그램에 사용했습니다 ASP.Net 클래스의 일부 코드가 있습니다. 커맨드 라인 도구에서 비슷한 비즈니스 기능을 수행하고자합니다. 두 응용 프로그램에서 동일한 코드를 사용하고 있지만 명령 줄 응용 프로그램은 코드의 아래 부분에있는 "GetRequestStream"호출에서 시간이 초과되었습니다.전화는 ASP.Net에서 작동하지만 콘솔 응용 프로그램
나는 내가 그들과 함께 끝났어요 때 나는 REQ와 req2을 닫으면 작업을 GetRequestStream에 대한 호출을 얻을 수있었습니다. 그러나 req3을 인증하려면 req와 req2가 열려 있어야합니다. 그래서 req2와 req2를 열어두면 GetRequestStream이 시간 초과됩니다. req 및 req2를 닫으면 GetRequestStream에 대한 호출이 작동하지만 req3이 인증에 실패합니다.
내가 언급 한 바와 같이
는 동일한 코드는 웹 기반, ASP.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();
감사 존. 나는 그것이 가비지 수집이 나를 위해 처리하고있는 것이라고 생각했다. 그게 잘 됐어! –