我有一個簡單的ASP.NET MVC C#的網頁,用戶可以提交標題,Descirption,標籤和鏈接(URL)。該服務的帖子與JASON(AJAX)一起發送,並且在很大程度上非常有效。但是,有時候這個帖子只是掛起,沒有發生這種情況,加載本網站的任何其他頁面也會變得緩慢。
webmethod非常簡單,首先它將數據存儲到數據庫,然後使用HttpWebRequest來獲取URL頁面。讀取的頁面然後被讀取(標題數據),並且在大多數情況下它存儲圖像。
我懷疑hangig是由於HttpWebRequest需要很長時間。請求方法以此開始:
if (url != null && url.Length > 0)
{
request = (HttpWebRequest)HttpWebRequest.Create(url);
dirInfo.Create();
request.UserAgent = ConfigurationManager.AppSettings["DomainName"];
webresponse = (HttpWebResponse)request.BeginGetResponse(.GetResponse();
if (webresponse.ContentType.StartsWith("image/"))
{
using (WebClient tmpClient = new WebClient())
{
client.DownloadFile(url, postThumbnailsTemp + "\\" + fileName);
}
if (SavePostImage(postThumbnailsTemp + "\\" + fileName, postId))
return true;
}
if (webresponse.ContentType.StartsWith("text/html") || webresponse.ContentType.StartsWith("application/xhtml"))
{
var resultStream = webresponse.GetResponseStream();
doc.Load(resultStream);
問題是在這裏使用異步調用可能會更好嗎?像HttpWebRequest.BeginGetResponse?這意味着用戶可能會在讀取和存儲URL網頁之前重定向到帖子頁面。
我不明白這個問題是。在什麼方面「可能會更好」更好?你的代碼現在工作嗎?你想改善什麼? – usr
正如我所說的「有時候這篇文章只是掛起,沒有發生這種情況發生時,加載本網站的任何其他頁面也會變得很慢。」並確保這與網絡請求代碼有關。 – Banshee
所以你的問題是「這個POST爲什麼會掛起,以及如何解決它?」。這裏沒有任何信息可以找到問題。遠程服務器是否沒有響應?在這種情況下修復服務器。使用提琴手找出。 – usr