标签: azure-web-roles

重用Azure Web角色进行后端处理是一个好主意吗?

我正在向Windows Azure移植一个巨大的应用程序.它将具有Web服务前端和处理后端.到目前为止,我认为我将使用Web角色为后端处理服务客户端请求和工作者角色.

管理两种角色似乎有问题 - 我需要决定如何扩展两种角色,我还需要几个(至少两个)实例来确保合理的容错,这会略微增加运营成本.同样在我的应用程序中,客户端请求相当轻量级,后端处理是重量级的,因此我预计后端处理将比服务客户端请求消耗更多的处理能力.

这就是为什么我正在考虑将Web角色用于所有事情 - 只是生成线程并在每个实例中同时执行服务请求和后端处理.这将使角色更复杂,但我猜想简化管理.我会有更多的统一角色和更好的容错能力.

重用Web角色进行后端处理是一个好主意吗?我应该期待哪些缺点?

windows cloud azure azure-web-roles

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

Azure角色和实例

我是否可以在同一个实例上运行Web角色和辅助角色,或者我是否必须获得2个单独的托管实例并支付两倍的金额?

我有一个WCF Web API,我想在Azure上托管.我还有一个工作者角色,用于侦听Azure存储中的队列.每次将消息添加到队列时,它都将获取该消息并根据消息运行一个小任务.

我想知道我是否可以在同一个实例上运行这两个.

azure azure-worker-roles azure-web-roles

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

Azure云服务:共享同一端口的两个Web角色

我想拥有一个包含两个Web应用程序的Azure Cloud Service.两个应用程序应具有相同的入站端口号(80),并且仅在主机头中有所不同.

是否可以将这些应用程序配置为不同的Web角色?我认为不可能将相同的端口指定为不同角色的端点.

azure azure-web-roles

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

确定Web角色实例的关联w3wp进程

我正在努力监控Azure服务的性能.

目前有两个Web角色实例(针对同一网站)运行 - 每个实例都有自己的W3WP.exe(w3wp和w3wp#1)

如何找出哪个w3wp进程属于哪个角色实例?

有了这些信息,我想给azure.diagnostics.monitor提供一些性能计数器 - 即Process(w3wp)\ ProcessorTime(%)和Thread Count.但是为了获得任何有意义的数据,我必须将w3wp进程的进程ID附加到性能计数器(例如Process(w3wp_PID)\ processorTime(%)) - 不知道语法是否正确,但有一种方法可以附加PID)

所以AzureStorage表中的最终结果WADPerformanceCounters只有以下条目:

WebRoleInstance_n_0 | process(w3wp_1033)\processorTime (%) |  12.4
WebRoleInstance_n_1 | process(w3wp_1055)\processorTime (%) |  48.4
Run Code Online (Sandbox Code Playgroud)

atm就像

WebRoleInstance_n_0 | process(w3wp)\processorTime (%) |  12.4
WebRoleInstance_n_1 | process(w3wp)\processorTime (%) |  12.4
Run Code Online (Sandbox Code Playgroud)

我想:如果我为每个角色启动了DiagnosticsMonitor,那么监视器将使用正确的进程 - 属于启动监视器的Roleinstance.但实际上这不起作用 - 或者我认为它不起作用 - 至少在查看结果值之后.

// update:在manage.windowsazure门户上,您可以为性能监视定义自定义指标.这里可以选择专门监控的webrole实例.这也是我想要做的.对此页面实际执行的操作的见解也可能有所帮助.

比较:http: //puu.sh/1xp7q

他们只想到获取此信息的愚蠢方式是:获取每个w3wp启动前后所有进程的列表 - 确定添加了哪个进程,然后确定代码库上下文明智地启动了哪个角色实例.

multiple-instances w3wp azure performance-monitor azure-web-roles

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

Azure中的客户端证书身份验证和CA证书

我需要使用客户端证书对Azure Cloud Service Web角色的请求进行身份验证.如何将证书颁发机构(CA)根证书放在正确的受信任存储中?

我尝试在管理门户中上传它,然后使用AuthRoot商店名称在服务定义文件中定义它:

<Certificate name="RootCA" storeLocation="LocalMachine" storeName="AuthRoot" />
Run Code Online (Sandbox Code Playgroud)

真正奇怪的是它有效......但有时候才有效.它可能在实例重新引导后工作,但在服务更新或其他实例重新引导后可能无法工作.这似乎是Azure中的一个错误.

当我说"工作"时,我的意思是服务器成功接受客户端证书并处理请求.当我说"不起作用"时,我的意思是服务器在证书检查后没有协商连接并且"请求被中止:无法创建SSL/TLS安全通道".在客户端抛出异常.

如何使其稳定运行?

UPD:

在系统Windows事件日志中找到此记录(源是Schannel):

在请求客户端身份验证时,此服务器会向客户端发送可信证书颁发机构列表.客户端使用此列表选择服务器信任的客户端证书.目前,该服务器信任如此多的证书颁发机构,因此该列表已经变得太长了.因此该列表被截断.此计算机的管理员应检查受信任的证书颁发机构以进行客户端身份验证,并删除那些不需要信任的证书颁发机构.

certificate client-certificates azure azure-web-roles

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

使用SignalR Hub交换Azure Staging/Production环境

我有一个在Azure Web角色上运行的SignalR服务.我有兴趣部署新版本的服务,首先是Staging,然后是生产部署插槽.

我的问题是,如果在生产中存在与服务的现有连接时交换两个部署插槽:

那些现有的连接会发生什么?它们是否仍然连接到现在的Staging插槽,还是会重新连接到now-Production插槽?或者是其他东西?这是客户端依赖的吗?

谢谢!

azure azure-web-roles azure-deployment signalr

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

如何允许其他用户部署到我的Azure云服务?

我创建了一个空的Azure云服务,我想允许其他开发人员部署到它.到目前为止,我能看到的唯一途径是将开发人员添加为Azure订阅管理员.我宁愿只给他们更具体的云服务访问权限.

permissions azure azure-web-roles visual-studio-2013

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

Chrome34忽略域名为".cloudapp.net"的Cookie

从托管在Azure的Web角色我们的开发/测试环境中大量的调试后,即突然停止使用Chrome 34的工作,我们认识到Chrome的忽略与域名".cloudapp.net"的Cookie设置Cookie响应( Azure中云服务的默认公共Microsoft域).我们选择此名称的原因是能够在不同的云服务之间生成CORS请求,这些请求需要来自同一javascript应用程序的安全请求.这意味着获得从MVC网站的验证cookie一样http://example.cloudapp.net和像调用另一个Web角色安全的WebAPI REST服务http://exampleServices.cloudapp.net(仅适用于具有相同的域名饼干)

以下是生成身份验证cookie的云服务的身份验证响应示例:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Origin:http://example.cloudapp.net
Cache-Control:private
Content-Length:31
Content-Type:application/json; charset=utf-8
Date:Fri, 11 Apr 2014 20:21:20 GMT
Server:Microsoft-IIS/8.0
Set-Cookie:.COOKIENAME=XXXXXXXXXXXXXXXXXXXX; domain=.cloudapp.net; path=/; HttpOnly
Run Code Online (Sandbox Code Playgroud)

我们面临的问题是,使用此域名在Chrome34中放弃了Cookie,因此任何其他请求都未经过身份验证.我们可以购买公共域并在azure中设置我们的云服务,但我想知道是否有任何解决此问题的方法.

cookies asp.net-mvc google-chrome azure-web-roles

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

在Azure Web角色上更新aspnet.config

我有一个部署到Azure Web角色(云服务,而不是Azure Web站点)的SignalR解决方案,为了确保我们可以最大化每个实例的连接数,我需要对各种ASP.NET设置进行一些更改,如详细在这篇文章中:http://www.asp.net/signalr/overview/performance/signalr-performance#tuning

使用APPCMD进行相关更改的启动任务可以轻松更改appConcurrentRequestLimit和requestQueueLimit设置.但是,maxConcurrentRequestsPerCPU设置驻留在aspnet.config文件中,该文件无法通过相同的机制进行更改.

我尝试直接使用启动任务更新该文件(现在只是一个基本文件替换),但是在启动任务完成后似乎被Azure运行时替换,因此更改丢失了.我可以RDP进入机器并手动进行更改,因此我已经看到它可以工作,但对于我们希望按需扩展和缩小的服务而言,这是不可持续的.

有关如何在Azure环境中更改此设置的任何想法将不胜感激!

azure appcmd azure-web-roles signalr azure-cloud-services

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

我可以在同一个CloudService中托管WebRole和WorkerRole吗?

我在.Net中有一个空白的解决方案,并在解决方案中添加两个Azure云服务项目.一个是WebRole,另一个是WorkerRole.我可以在一个cloudservice实例中托管这两个项目,还是需要两个项目分开.

azure azure-worker-roles azure-web-roles azure-cloud-services

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