Web API启动过程

时间:2013-09-11 18:27:46

标签: c# selenium phantomjs

我相信我从Web API服务运行Selenium PhantomJS驱动程序时遇到权限问题。我曾尝试通过各种管理员帐户模拟服务,但我仍然遇到同样的错误。如何确定抛出错误的配置文件?我通过打印process.StandardOutput.ReadToEnd()

收到此错误
System.Configuration.ConfigurationErrorsException: Configuration system failed to  initialize
  ---> System.Configuration.ConfigurationErrorsException: An error occurred loading a configuration file: Access is denied.
  ---> System.Security.SecurityException: Access is denied.
   at System.Security.Principal.WindowsIdentity.SafeImpersonate(SafeTokenHandle userToken, WindowsIdentity wi, StackCrawlMark& stackMark)
   at System.Security.Principal.WindowsIdentity.SafeRevertToSelf(StackCrawlMark& stackMark)
   at System.Security.Principal.WindowsIdentity.Impersonate(IntPtr userToken)
   at System.Configuration.ClientConfigurationHost.Impersonate()

1 个答案:

答案 0 :(得分:2)

这很奇怪,因为Web Driver不要求您动态更改配置文件。我想你是在尝试自己做所有事情:不要重新发明轮子,因为所有这些东西都已经由Selenium支持类完成了。

为了在Web Api中试用WebDriver:

获得https://stackoverflow.com/标题的一个非常基本的方法可能是:

using OpenQA.Selenium;
using OpenQA.Selenium.PhantomJS;
...
public string Get()
{
    // c:\phantomjs contains phantomjs.exe
    // if blank, Web Driver will download the latest version
    IWebDriver driver = new PhantomJSDriver(@"c:\phantomjs");
    driver.Navigate().GoToUrl("https://stackoverflow.com/");
    string title = driver.Title;
    driver.Quit();
    return title;
}
  • 就是这样!

根据您的托管,支持类在尝试启动phantomjs时可能会遇到一些问题;只需将应用程序池标识更改为超级用户即可。