朋友们,
我正在尝试使用Azure WebJobs设置持续集成.我在解决方案中有一个Web和一个WebJobs项目.我已经在Visual Studio Online(*.visualstudio.com)中为Web应用程序设置了持续集成和部署.我还使用Visual Studio ASP.Net扩展连接了WebJobs和Web应用程序 - 右键单击VS 2013中的WebSite项目>添加>现有Azure WebJob项目.它在网站项目中创建了webjobs-list.json文件.
我期待在Visual Studio Online构建之后,当Azure网站发生Web应用程序部署时,它也将部署WebJobs.但事实并非如此.
在visualstudio.com中构建Visual Studio Online之后,我们如何自动化WebJobs部署?
我有一个每小时产品使用情况表(产品使用次数)数据 -
ID (bigint)| ProductId (tinyint)| Date (int - YYYYMMDD) | Hour (tinyint)| UsageCount (int)
#|1 | 20140901 | 0 | 10
#|1 | 20140901 | 1 | 15
#|1 | 20140902 | 5 | 25
#|1 | 20140903 | 5 | 25
#|1 | 20140904 | 3 | 25
#|1 | 20140905 | 7 | 25
#|1 | 20140906 | 10 | 25
#|1 | 20140907 | 9 | 25
#|1 | 20140908 | 5 | 25
#|2 | …Run Code Online (Sandbox Code Playgroud) 需要使用javascript(在www.domain1.com)中使用Basic Auth进行REST GET调用.REST API位于domain2.com中.REST API返回CORS特定的HTTP标头.我需要支持IE,Chrome和Firefox.JavaScript下面进一步解释了这个问题 -
没有Basic Auth(IE 10中的WORKS,Chrome和Firefox,通过XDomainRequest对象处理旧的IE)
var xhr = new XMLHttpRequest();
xhr.open(method, url, true);
Run Code Online (Sandbox Code Playgroud)使用Basic Auth(仅限IE 10中的WORKS,Chrome和Firefox中的失败)
var xhr = new XMLHttpRequest();
xhr.open(method, url, true, username, password);
Run Code Online (Sandbox Code Playgroud)使用Basic Auth(在Chrome和Firefox中失败)
var xhr = new XMLHttpRequest();
xhr.open(method, url, true);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr. withCredentials = “true”;
Run Code Online (Sandbox Code Playgroud)使用Basic Auth(在Chrome和Firefox中失败)
$.ajax({
type: 'GET',
url: jsonp_url,
dataType: "json",
username: username,
password: pwd,
beforeSend: function (xhr) {xhr.withCredentials = true; },
success: function (result) { },
error: function …Run Code Online (Sandbox Code Playgroud)我通过SendGrid从Azure Webjob(C#)发送电子邮件.我没有看到任何在邮件标题中添加Return-Path的选项.可能吗?
我正在针对我的 Azure Web App P3 定价层运行负载测试。我们有以下自动扩展策略 -
最小实例 5 和最大实例 20,如果 CPU 百分比 (Max) 超过 85%,则增加 1 个实例,如果 CPU 百分比平均值低于 50%,则减少 1 个实例
现在,它正在运行 5 个实例。如果我转到 Applications Insights,所有可用实例的“实时指标流”窗格,它会显示所有 5 个实例的 CPU 使用率约为 75%(平均)。事实上,一些实例接近 85%。
然而,如果我转向应用服务计划级别的 CPU 使用率图表(我只有一个应用程序在该计划下运行),它仅显示 20%。
我们如何调和这两个相互矛盾的统计数据?
azure azure-application-insights azure-app-service-plans azure-web-app-service
使用基于声明的模型设计 ASP.Net MVC 应用程序授权。假设我们有一个名为 - Product 的对象。通常,有 4 种不同的操作 - 创建、编辑、删除和查看。授权是使用 ClaimsAuthorize 属性完成的。
[Authorize]
public class ProductController : Controller
{
[ClaimsAuthorize("Product", "VIEW")]
public List<Product> GetProducts()
{
// ....
}
[ClaimsAuthorize("Product", "CREATE")]
public Product CreateNewProduct(Product product)
{
//....
}
}
Run Code Online (Sandbox Code Playgroud)
但就我而言,我必须支持不同类型的 EDIT 权限:
如果同一用户最初创建了产品,则某些用户可以编辑产品
如果产品属于特定类别并且用户也有权访问同一类别,则某些用户可以编辑该产品
部分用户可以编辑所有产品(这是正常的产品编辑操作)
您如何优雅地授权所有这些编辑操作(最好是如上所示的属性驱动),同时我希望将授权代码与正常的 MVC 控制器代码和业务逻辑分开。
[以上代码示例在语法上不正确,我只是为了解释这个问题而编写的] 让我知道您的想法。
我使用Azure PAAS为我的一个客户制作了一个产品版本– Azure Web App(以前称为Azure网站)。我们在自动缩放模式下用最少2个实例标记了该站点。我们开始收到用户的抱怨,他们断断续续地遇到一些问题,只有当他们在积极使用网站时丢失会话变量时,这些问题才会引起。
我们想知道怎么回事,因为我们将会话保持在“过程中”。我们没有在第1天就单独使用proc会话管理器(基于Redis缓存/基于数据库),因为根据该文档,Azure Web应用程序默认情况下使用粘性会话负载平衡器运行(当运行多个实例时) 。它将ARR亲和力Cookie注入Http响应中,这有助于将用户重定向到与第一次建立会话的实例相同。
要调试此问题,我们开始在页面中打印实际的sessionId。经过多次尝试,我们重现了该问题–令人惊讶的是,会议被交换了。可以说–我的会话ID是“ 1eocgtmwwwwvs1cxksyofne4”,在页面刷新后,它更改为“ 5p1hsxszq2mcqmt5i5ytqg12”,包括所有在会话变量中管理的信息。吓人...不是吗?
伸出援手以提供紧急票证–响应是:
“ Azure Web Apps是一个无状态平台,我们的建议是实施一个最适合您的环境的会话管理解决方案,并避免依赖于内存中会话状态管理,尤其是在您的Web App托管在多个服务器上的情况下。如果您正在考虑在不久的将来实现用于会话管理的缓存解决方案,我们建议您暂时移至单个实例,作为一种解决方法,我们将协助您确保应用程序在单个实例上能够按预期工作。 ”
我完全理解这一点-但是为什么Affinity Cookie会失败。我知道可以禁用Affinity cookie,但我没有将其禁用。我想分享这个故事。对于任何其他基于基于Affinity cookie的粘性负载均衡器的人来说,它可能都是有用的。
顺便说一句:Redis会话提供程序的实现非常容易。只需几分钟即可实现。
现在进行验尸-出了什么问题?我不认为Cookie是“不支持”的浏览器。那为什么即使在我支持cookie的浏览器中它也会间歇性地失败。PAAS资源不断移动/交换....我们无法在proc会话中使用…等等
首先使用代码(EF 6),我创建了1个父 - 2子关系.属性是父对象,属性地址为具有1或0..1关系的子对象.PropertyImage是另一个有1对多关系的孩子.PropertyImage工作正常,但如果我尝试加载,PropertyAddress会抛出错误.
实际错误 -
违反了多重约束."MyAssetTracker.DataLayer.Models.PropertyAddress_Property"关系的角色"PropertyAddress_Property_Source"具有多重性1或0..1.
// Test Function
GetProperty()
{
Property property;
using (var repo = new PropertyRepository())
{
property = repo.AllIncluding(a=>a.Images, a=>a.Address).FirstOrDefault(a => a.Id == testpropertyid);
}
}
//Property Repository
public class PropertyRepository : IPropertyRepository
{
public IQueryable<Property> AllIncluding(params Expression<Func<Property, object>>[] includeProperties)
{
IQueryable<Property> query = context.Properties;
foreach (var includeProperty in includeProperties) {
query = query.Include(includeProperty);
}
return query;
}
}
//Property Entity
public class Property : DomainModelAuditBase, IDomainModelState
{
private Address _address;
private ICollection<Asset> _assets;
private …Run Code Online (Sandbox Code Playgroud) 我有2个SQL服务器.我需要一个SQL查询,可以连接两个不同服务器中的2个表.
喜欢
SELECT *
FROM Server1.Db1.dbo.table1 A
INNER JOIN Server2.Db1.dbo.table2 B ON A.Id = B.Id
Run Code Online (Sandbox Code Playgroud)
我没有服务器名称,而是使用服务器的IP地址.我是否需要将这些SQL服务器作为链接服务器启用以允许此类跨服务器查询?
我遵循此MSDN指南将ASP.Net Web应用程序文件发布/上载到Azure Web App(资源管理器).但是每当子文件夹启动时都会出现UploadFile错误.根文件夹很好.
上传到ftp://XXXXXX.ftp.azurewebsites.windows.net/site/wwwroot/bin/Antlr3.Runtime.dll 从C:\用户\ SampleWebApp\BIN\Antlr3.Runtime.dll
使用"2"参数调用"UploadFile"的异常:
远程服务器返回错误:(550)文件不可用(例如,找不到文件,没有访问权限)
Param(
[string] [Parameter(Mandatory=$true)] $AppDirectory,
[string] [Parameter(Mandatory=$true)] $WebAppName,
[string] [Parameter(Mandatory=$true)] $ResourceGroupName
)
$xml = [Xml](Get-AzureRmWebAppPublishingProfile -Name $webappname `
-ResourceGroupName $ResourceGroupName `
-OutputFile null)
$username = $xml.SelectNodes("//publishProfile[@publishMethod=`"FTP`"]/@userName").value
$password = $xml.SelectNodes("//publishProfile[@publishMethod=`"FTP`"]/@userPWD").value
$url = $xml.SelectNodes("//publishProfile[@publishMethod=`"FTP`"]/@publishUrl").value
Set-Location $appdirectory
$webclient = New-Object -TypeName System.Net.WebClient
$webclient.Credentials = New-Object System.Net.NetworkCredential($username,$password)
$files = Get-ChildItem -Path $appdirectory -Recurse | Where-Object{!($_.PSIsContainer)}
foreach ($file in $files)
{
if ($file.FullName)
$relativepath = (Resolve-Path -Path $file.FullName -Relative).Replace(".\", "").Replace('\', '/')
$uri = New-Object …Run Code Online (Sandbox Code Playgroud) azure ×2
sql ×2
sql-server ×2
asp.net-mvc ×1
azure-devops ×1
ftp ×1
jquery ×1
linked-list ×1
powershell ×1
return-path ×1
sendgrid ×1