POST
托管了一个对 ASPX 页面执行某些操作的 Web 服务。
编码:
[WebMethod]
public string Test()
{
sb.AppendLine("Start");
try
{
var t = new Thread(MyThreadStartMethod);
t.SetApartmentState(ApartmentState.STA);
t.Start();
t.Join();
}
catch (Exception ex)
{
sb = sb.AppendLine(ex.ToString());
}
sb.AppendLine("Finish");
return sb.ToString();
}
private void MyThreadStartMethod(object obj)
{
try
{
WebBrowser browser = new WebBrowser();
browser.DocumentCompleted += browser_DocumentCompleted;
browser.Url = new Uri("http://www.wikipedia.com");
while (browser.ReadyState != WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents();
Thread.Sleep(60);
}
}
catch (Exception ex)
{
sb = sb.AppendLine(ex.ToString());
}
}
void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
sb = sb.AppendLine("Document completed: " + e.Url);
}
当尝试在我的共享托管服务器上运行它时,我总是遇到超时错误。
尝试了下一个代码来检查我是否可以连接到第三方地址并且它工作正常。
private bool checkUrl(string url)
{
try
{
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "HEAD";
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
return (response.StatusCode == HttpStatusCode.OK);
}
catch
{
return false;
}
}
任何人都可以解释运行第一个代码的问题吗?他们会阻止什么吗?