我有一个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
我看到通过控制面板设置的分辨率和我的宽屏笔记本电脑的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获取图片并将它们彼此独立地放到屏幕上,所以无论我有什么解决方案,它都必须正确地获得每个显示器的分辨率.
我正在做一些清理,使用以下命令将一些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
我在Windows 7机器上的远程服务器(Server 2007 R2)和Tortoise SVN 1.6.12 x64上运行VisualSVNServer.我在服务器上设置了一个存储库,可以重新浏览到它并结帐.当我添加文件(它允许我这样做)然后提交时,我收到以下错误
无法打开文件'C:\ Repositories\Test\db\txn-current-lock':访问被拒绝
我已经在VisualSVNServer中设置了读/写权限,并为我的用户ID完全控制了存储库目录.我已经阅读了如何在Linux中修复此问题,但我正在运行Windows 7.任何帮助都会非常感激.谢谢
我有一个应用程序,我已使用身份验证防护设置,以确保用户无法访问该应用程序,除非他们已登录,如此
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) 我正在尝试设置一个消耗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) 我知道我能够将LINQPad连接到EF模型并能够运行查询以获取结果和lambda表达式,但是对于DB2,它不会显示任何SQL,因为提供程序没有被EF移交给LINQPad.似乎如果我想能够看到SQL,我需要为DB2编写一个自定义驱动程序以使其工作.我已经阅读了文档,这有点过头了.有没有人有这个工作的例子,我将不胜感激.谢谢.
我试图将服务注入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 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创建的.
我正在尝试设置一个 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
c# ×5
angular ×4
routing ×2
azure ×1
db2 ×1
dpi ×1
linqpad ×1
oauth ×1
phantomjs ×1
resolution ×1
spa-template ×1
svn ×1
tortoisesvn ×1
windows-7 ×1
windows-8.1 ×1
windows-xp ×1
yahoo-api ×1