小编Isa*_*vin的帖子

在Azure Web App上运行Selenium

我有一个Azure Web应用程序,当我在控制器上调用Action时,我想用它来屏幕抓取网站,就像这样.

var driver = new PhantomJSDriver();
driver.Url = "http://url.com";
driver.Navigate();
var source = driver.PageSource;
var pathElement = driver.FindElementByXPath("//table[@class='someclassname']");

string innerHtml = "";
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
if (js != null)
{
    innerHtml = (string)js.ExecuteScript("return arguments[0].innerHTML;", pathElement);
}
return innerHtml;
Run Code Online (Sandbox Code Playgroud)

这在本地工作正常,但是当我上传到我的Azure Web App时,我收到此错误

无法在http:// localhost:51169 /上启动驱动程序服务

我认为这有,因为我需要批准PhantomJS在我的防火墙设置中的首次应用程序运行与防火墙做.我的问题是如何在Azure中部署这个工作?它是否可能,或者我是否需要将其配置为单元测试并在Visual Studio中运行?

c# phantomjs asp.net-web-api azure-web-sites selenium-webdriver

12
推荐指数
1
解决办法
3009
查看次数

屏幕分辨率与Screen.Bounds不匹配

我看到通过控制面板设置的分辨率和我的宽屏笔记本电脑的Screen.Bounds输出之间有一个有趣的区别.屏幕为15.5",通过控制面板设置的分辨率为1920x1080.但是当我运行这样的代码时.

Screen[] screens = Screen.AllScreens;
foreach (Screen scr in screens)
{
    Console.WriteLine("Width: " + scr.Bounds.Width + ", Height: " + scr.Bounds.Width);
}
Run Code Online (Sandbox Code Playgroud)

输出显示我的分辨率为1536x864.我做了一些环顾四周,我认为它可能与DPI问题有关,当我查看我的显示设置时,滑块(我在Windows 8.1上)位于中间,复选框指出"让我为我的所有显示选择一个缩放级别"未选中.我运行这个小代码来获取当前的DPI设置.

float dpiX, dpiY;
Graphics graphics = new System.Windows.Forms.Form().CreateGraphics();
Console.WriteLine("DPI: " + graphics.DpiX);
Run Code Online (Sandbox Code Playgroud)

返回的DPI是96.0,根据我的理解,这是100%DPI设置(因此没有放大或其他任何调用).对我来说似乎很奇怪的是,Screen返回的界限恰好是我实际分辨率的80%,这会让我认为我的DPI设置为100(或125%),但事实并非如此.我的笔记本电脑屏幕只有这个问题,因为我的辅助显示器的界限等于通过控制面板的分辨率.这是因为我的DPI设置未设置为使显示器彼此独立(选中该复选框)?对于一些背景知识,我正在编写一个工具,它可以获取当前屏幕并从reddit获取图片并将它们彼此独立地放到屏幕上,所以无论我有什么解决方案,它都必须正确地获得每个显示器的分辨率.

c# resolution dpi windows-8.1

10
推荐指数
2
解决办法
5302
查看次数

Azure资源集团陷入"移动资源"

我正在做一些清理,使用以下命令将一些Azure云服务移动到新创建的资源组

Find-AzureRmResource -ResourceNameContains "oldresourcename" |
Move-AzureRmResource -DestinationResourceGroupName "newresourcegroup" -Verbose
Run Code Online (Sandbox Code Playgroud)

一切都很顺利,但我跑的最后一个似乎需要很长时间.它是一个简单的CS,具有一个辅助角色,一个Web角色和小尺寸.

该命令已处于未完成状态超过一个小时,在Portal上,两个资源组在页面顶部都有紫色的"移动资源".我要等到明天才能看到它是否仍然存在,但它不应该花这么长时间.

有没有办法取消或停止此操作?关注的是两个资源组都被锁定,直到这个过程完成,这将是一个前进的问题.

azure azure-powershell azure-resource-manager azure-resource-group

9
推荐指数
1
解决办法
2645
查看次数

在Windows上提交SVN时,"db\txn-current-lock"上的访问被拒绝

我在Windows 7机器上的远程服务器(Server 2007 R2)和Tortoise SVN 1.6.12 x64上运行VisualSVNServer.我在服务器上设置了一个存储库,可以重新浏览到它并结帐.当我添加文件(它允许我这样做)然后提交时,我收到以下错误

无法打开文件'C:\ Repositories\Test\db\txn-current-lock':访问被拒绝

我已经在VisualSVNServer中设置了读/写权限,并为我的用户ID完全控制了存储库目录.我已经阅读了如何在Linux中修复此问题,但我正在运行Windows 7.任何帮助都会非常感激.谢谢

svn tortoisesvn windows-xp visualsvn-server windows-7

8
推荐指数
1
解决办法
1万
查看次数

将参数传递给Guard Angular 2

我有一个应用程序,我已使用身份验证防护设置,以确保用户无法访问该应用程序,除非他们已登录,如此

import { Injectable } from '@angular/core';
import {
    CanActivate, Router,
    ActivatedRouteSnapshot,
    RouterStateSnapshot,
    CanActivateChild } from '@angular/router';
import { AuthContext } from './auth-context.service';

@Injectable()
export class AuthGuard implements CanActivate {
        constructor(private router: Router, private authContext: AuthContext) { }

    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
        // Check to see if a user has a valid JWT
        if (this.authContext.userInfo !== undefined && this.authContext.userInfo.isAuthenticated) {
            // If they do, return true and allow the user to load the home component
            return true;
        } …
Run Code Online (Sandbox Code Playgroud)

routing angular

7
推荐指数
2
解决办法
7964
查看次数

Yahoo Sports API问题

我正在尝试设置一个消耗Yahoo Fantasy体育API的简单应用程序,并允许通过YQL执行查询.

 class Program
{
    static void Main(string[] args)
    {

        string yql = "select * from fantasysports.games where game_key in ('268')";
        //var xml = QueryYahoo(yql);
       // Console.Write(xml.InnerText);

        string consumerKey = "--my key--";
        string consumerSecret = "--my secret--";

        var xml = QueryYahoo(yql, consumerKey, consumerSecret);
        Console.Write(xml.InnerText);
    }

    private static XmlDocument QueryYahoo(string yql)
    {
        string url = "http://query.yahooapis.com/v1/public/yql?format=xml&diagnostics=false&q=" + Uri.EscapeUriString(yql);

        var req = System.Net.HttpWebRequest.Create(url);
        var xml = new XmlDocument();
        using (var res = req.GetResponse().GetResponseStream())
        {
            xml.Load(res);
        }
        return xml;
    }

    private static XmlDocument …
Run Code Online (Sandbox Code Playgroud)

c# oauth yahoo-api

6
推荐指数
1
解决办法
1543
查看次数

LINQPad DB2支持

我知道我能够将LINQPad连接到EF模型并能够运行查询以获取结果和lambda表达式,但是对于DB2,它不会显示任何SQL,因为提供程序没有被EF移交给LINQPad.似乎如果我想能够看到SQL,我需要为DB2编写一个自定义驱动程序以使其工作.我已经阅读了文档,这有点过头了.有没有人有这个工作的例子,我将不胜感激.谢谢.

c# db2 linqpad

6
推荐指数
1
解决办法
1275
查看次数

HttpInterceptor中的注入服务未初始化

我试图将服务注入HttpInterceptor,这是简单的服务

import { Injectable } from '@angular/core';
@Injectable()
export class LoginLoadingService {
   constructor() { }
   public loaded: boolean;
   isLoaded() {
       if (this.loaded === undefined) {
             this.loaded = true;
       }
       return this.loaded;
  }    
}
Run Code Online (Sandbox Code Playgroud)

和拦截器

import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from 
'@angular/common/http';
import { Injectable, Inject } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { LoginLoadingService } from './loading.service';
import 'rxjs/add/operator/do';
@Injectable()
export class LoginLoadingInterceptor implements HttpInterceptor {
  constructor(public loginLoadingService: LoginLoadingService) { }
  intercept(req: HttpRequest<any>, next: HttpHandler): …
Run Code Online (Sandbox Code Playgroud)

angular-http-interceptors angular

6
推荐指数
2
解决办法
4310
查看次数

ActivatedRoute.queryParams未定义

我正在尝试使用Angular 2.0捕获查询字符串参数,并且我很难过.我有一个这样的网址

http:// localhost:5000 /?id_token = eyJ0eXAiO ....

我希望能够在路由占用之前捕获id_token的值,并且我丢失了参数.我发现了这个GitHub问题线程

https://github.com/angular/angular/issues/9451

但是这使用了一种不再适用的弃用方法.我尝试了以下方法

    var foo = this.activatedRoute.queryParams.subscribe(params => {
        console.log(params);
        let id = params['id_token'];
        console.log(id);
    });


   console.log(this.router.routerState.snapshot.root.queryParams["id_token"]);

   var bar = this.activatedRoute.params.subscribe(
        (param: any) => console.log(param['id_token']));
Run Code Online (Sandbox Code Playgroud)

我在构造函数中尝试了这些方法以及我的组件的ngOnInit(),但控制台始终显示未定义.我是在错误的地方做这件事吗 我根本无法更改QS,因为它是由Azure AD创建的.

routing angular

5
推荐指数
1
解决办法
7914
查看次数

在基于 Angular Cli 的应用程序中将数据从 ASP.NET Core 传递到 Typescript

我正在尝试设置一个 SPA,我可以在其中将数据从 appsettings.json 传递到服务器渲染的客户端。我按照步骤使用新的 SpaServices 模板配置 SSR

https://docs.microsoft.com/en-us/aspnet/core/spa/angular

但是我不明白如何完成这里标记的任务

您可以通过 Angular 支持的任何方式将其传递给应用程序的其他部分

我看到使用的示例是 base_url,但似乎 base 作为 DOM 元素注入页面

 <base href='/'>
Run Code Online (Sandbox Code Playgroud)

但不清楚如何以这种方式阅读其他项目。我正在测试通过应用程序是否为 Https,我的 Startup.cs 中有此部分

options.SupplyData = (context, data) =>
{
    data["isHttpsRequest"] = context.Request.IsHttps;
};
Run Code Online (Sandbox Code Playgroud)

并在 main.server.ts

 { provide: 'isHttps', useValue: params.data.isHttpsRequest }
Run Code Online (Sandbox Code Playgroud)

但在 main.ts 中我迷路了,我有这样的东西

export function getBaseUrl() {
  return document.getElementsByTagName('base')[0].href;
}

export function getIsHttps() {
  // NO idea what needs to go here
  return "";
}

const providers = [
  { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] },
  { …
Run Code Online (Sandbox Code Playgroud)

c# server-side-rendering angular asp-net-core-spa-services spa-template

5
推荐指数
1
解决办法
3571
查看次数