【发布时间】:2018-07-17 16:21:22
【问题描述】:
我正在使用 Azure 应用服务来托管 API。 API 包含一个调用普通 Webbroswer 的虚拟方法。 下面是代码:
[HttpGet]
[Route("c")]
public string GetCorrection()
{
string result = "NoResults";
ClassLibrary2.Class2 class2 = new ClassLibrary2.Class2();
try
{
Thread thread = new Thread(new ThreadStart(() =>
{
class2.Browse();
}));
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
}
catch (Exception ex)
{
return ex.ToString();
}
return result;
}
public string Browse()
{
using (WebBrowser browser = new WebBrowser())
{
browser.ScrollBarsEnabled = false;
browser.ScriptErrorsSuppressed = true;
browser.AllowNavigation = true;
browser.Navigate("https://en.wikipedia.org/wiki/Wiki");
return browser.DocumentTitle;
}
}
}
Eveything 在本地正常工作。
但是一旦我将它发布到 Azure,就会发生 502 错误。
如果我删除 browser.Navigate("https://en.wikipedia.org/wiki/Wiki"); 行,则不会发生错误。
任何想法 ?
我怀疑它是否与 System.Windows.Forms 事件有关。
提前致谢,
【问题讨论】:
-
只是出于好奇,您为什么要使用 WebBrowser 对象?使用 HttpClient 获取文档标题不是更容易吗?见stackoverflow.com/questions/36803819/…
-
@RuiJarimba 这是一个虚拟测试。我的原始代码打开一个 HTML 页面,并在 document.loadComplete 事件上调用 javascript 函数
-
@RuiJarimba 你知道 Chromium (CefSharp) 是否可以成为解决方案吗?
-
对不起,我完全不知道它是否会起作用。您是否考虑过使用 SignalR? codemag.com/article/1210071/…