1

を認証しようとしていHttpWebRequestます。私のコードはこんな感じです

 string url = "http://mydomain.com";
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    HttpCookie cookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
    req.Headers[HttpRequestHeader.Cookie] = string.Format("{0}={1}", cookie.Name, cookie.Value);
    WebResponse res = req.GetResponse();

最後の行が実行されるまですべてが正常に実行されます(WebResponse res = req.GetResponse();)。最後の行が実行されると、コードの実行は最初の行に戻ります(string url = "string url =" http://mydomain.com ";";)そしてもう一度やり直してください。これは何度も発生するため、タイムアウト例外が発生します。

4

2 に答える 2

2

まず、url が次のように定義されている理由が明確ではありません。

string url = "HttpContext.Current.Request.Url.AbsoluteUri";

これは有効な URL ではありません。しかし、もしあなたが持っているなら

string url = HttpContext.Current.Request.Url.AbsoluteUri;

あなたがいるのと同じページへのリクエストを生成しているよりも、基本的にはループを生成するだけです。ブラウザからページを呼び出し、webrequest を使用して自分自身を呼び出し、再び自分自身を呼び出します。したがって、VSデバッガーでは、最初の行に戻るように表示されます。
以下のように単純に URL 定義を変更してみてください。

string url = "http://wwww.google.com";

そうすれば、うまくいくはずです。基本的に、私が理解しているように、ループのようなものを作成する間違った URL を使用しているだけです (または、より良い言い方をすれば、呼び出しの長いチェーン)。

于 2013-01-15T12:03:08.590 に答える
0

引用符を外してみてくださいHttpContext

string url = HttpContext.Current.Request.Url.AbsoluteUri;

変数に含まれる実際の絶対 URI「http://domain.com/」ではなく、リテラル URI アドレス「HttpContext.Current.Request.Url.AbsoluteUri」を要求していますHttpContext.Current.Request.Url.AbsoluteUri

于 2013-01-15T11:57:25.513 に答える