我有一个简单的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