我知道我可以使用此处概述的方法调试Azure Web角色:http: //msdn.microsoft.com/en-us/library/windowsazure/ee405479.aspx
调试Windows Azure网站的过程是什么?
我希望能够单步执行代码,设置断点等.
我们在两个非常小的实例上有一个Windows Azure Web角色,这些实例已运行数周没有问题.今天早上,我们无意中通过了一些支出限制,导致Windows Azure关闭了我们的完整服务,没有任何预先警告!
我们删除了支出上限,并开始重新部署Web角色,使用已经运行数周的相同代码库.令我们惊讶的是,我们遇到了部署错误
Validation Errors: Total requested resources are too large for the specified VM size.
我们将部署升级到两个小实例而不是超小实例,然后部署再次运行.现在,Web角色又回到了Web中.
但是,我们仍然不明白为什么我们的部署突然对于一个超小型实例来说太大了.自从上次成功部署到超小型实例以来,我们没有改变一点.然后,我们尝试通过将某些文件移动到Azure存储来删除部署大小,但即使将包文件减少了1 MB以上,部署仍然失败.
该cspkg文件,部署包,目前是9'359 KB.如果解压缩,则完整sitesroot文件夹的大小为14 MB.这低于19'480 KBx-small实例的限制.
在我们通过反复试验失去更多时间之前,我的问题是:这些19'480 KB计算究竟是怎样的?它只是sitesroot文件夹,或压缩包,还是sitesroot和approot文件夹在一起,还是整个解压缩包?
谢谢!
编辑:

有没有人使用托管的Web角色成功配置Azure CDN进行HTTP压缩?我们在Azure边缘服务器上压缩HTTP内容时遇到问题.CDN仅缓存内容的未压缩版本.
如果我们打我们的资源链接(WebResource.axd的从非Azure的方式通过的gzip压缩它)(使用xxxx.cloudapp.net/cdn/webresource.axd)如预期.但是,只要我们将资源链接指向Azure CDN(xxxx.vo.msecnd.net),尽管浏览器告知Azure CDN它接受gzip,但内容仍然是未压缩的.
我向Azure论坛发布了同样的问题,但是到目前为止还没有人回复.
在解决问题时,似乎Azure CDN正在剥离Accept-Encoding HTTP标头.只是好奇,如果其他人有同样的问题.
Windows Azure CDN如何使用压缩内容?
Windows Azure CDN不会修改(或添加)对象的压缩.Windows Azure CDN遵循基于"Accept-Encoding"标头的原始提供的压缩.从1.4开始,Azure存储不支持压缩.如果使用托管服务对象传递,则可以将IIS配置为返回压缩对象.
我们所看到的是CDN不尊重原点Accept-Encoding,它被剥夺了.
我正在尝试创建一个在Visual Studio 2010中使用"Windows Phone空云应用程序"模板(Windows Azure工具)的新项目.在创建新项目时,它会打开一个带有指令/自述文件的小窗口,其中显示:
在解决方案资源管理器中,右键单击Windows Azure项目,指向"调试",然后单击"启动新实例".等待Web角色启动并单击"继续浏览此网站(不推荐)"链接,以便能够浏览站点,尽管存在证书警告.
当我这样做时,我得到一个"对象引用没有设置为对象的实例"我还没有开始编码....模板是刚刚破坏或??
有任何想法吗?
Azure是否为Web角色提供静态IP地址,还是每次部署或重新部署应用程序时动态分配?
在Azure之前发布:
在使用Azure之前,我们只有坐在不同环境中的只读配置文件(测试,登台和生产等).在发布期间,所有应用程序文件(无配置文件)都将部署到相关环境中.然后,应用程序文件将读取环境的配置文件,以获取连接字符串和其他特定于环境的详细信息.我认为这是一个非常标准的设置?
在Azure之后发布:
现在我们将Web应用程序移动到Azure Web角色.Web角色使用ServiceConfiguration.Cloud.cscfg和ServiceConfiguration.Local.cscfg文件.
发布到云服务时,需要知道连接字符串.如果我们要发布到测试云服务,则ServiceConfiguration.Cloud.cscfg需要进行相应的编辑.如果我们要发布到临时或生产云服务,则ServiceConfiguration.Cloud.cscfg需要进一步更改.
我更倾向于在开始部署时从连接字符串中抽象开发人员AWAY.这可以防止指向错误环境的错误(这可能会产生巨大的影响).如何才能做到这一点?
我知道可以在Azure管理门户中更改这些配置设置,但是将此步骤包含在发布过程中意味着开发人员需要访问管理门户,这不是一个理想的情况,因为仍有余量错误(加上对管理门户的'开放'访问权限).
更新:
我发现您可以通过添加更多(和重命名)来管理您的服务配置文件:

然后通过一起选择正确的云服务(黑色)和正确的服务配置(红色箭头),开发人员不需要了解配置详细信息:

在部署到云服务时,开发人员仍然存在选择错误服务配置的问题(但是这可能会自动进入脚本以防止这种情况发生?)
我的主要信息是环境类型(蓝色箭头).这对我来说没用.
.net azure azure-web-roles azure-configuration web.config-transform
我正在尝试在Widows Azure上扩展网站.到目前为止,我已经测试了Wordpress,Ghost(博客)和纯HTML网站,它们都是一样的:如果我扩展它们(添加实例),它们就不会更快.我确信我必须做错事......这就是我所做的:
我跑了两次测试.第一次使用单个共享实例,第二次使用此命令使用两个共享实例:
ab.exe -n 10000 -c 100 http://demobootstrapsite.azurewebsites.net/
Run Code Online (Sandbox Code Playgroud)
这意味着ab.exe将使用100个并行线程创建10000个请求.
我希望两个共享实例的测试响应时间明显低于只有一个共享实例的响应时间.但是每个请求的平均时间甚至从一个共享实例的1452.519 ms增加到两个共享实例的1460.631 ms.后来我甚至在8个共享实例上运行了该站点,完全没有任何效果.我的第一个想法是,共享实例可能是问题所在.所以我将网站放在标准VM上并再次运行测试.但问题仍然存在.此外,添加更多实例并不会使网站更快(甚至更慢).
后来我和Scott Hanselman和Stefan Schackow一起讨论了一个视频,他们已经解释了Azure Scaling功能.Stefan说Azure有一种"粘性负载均衡",它会将客户端始终重定向到同一个实例/ VM,以避免与状态良好的应用程序出现兼容性问题.所以我检查了WebServer日志,我发现每个实例的日志文件大小相同.通常这意味着在测试期间使用了每个实例.
PS:在测试运行期间,我已经从本地计算机(来自与服务器不同的网络)检查了网站的响应时间,响应时间约为1.5秒.
以下是测试结果:
######################################
1 instance result
######################################
PS C:\abtest> .\ab.exe -n 10000 -c 100 http://demobootstrapsite.azurewebsites.net/
This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking demobootstrapsite.azurewebsites.net (be patient)
Finished 10000 requests
Server Software: Microsoft-IIS/8.0
Server …Run Code Online (Sandbox Code Playgroud) 我有一个托管为Azure云服务的应用程序(Web API,.NET 4.5).
Vm大小和4个实例.
当我使用新文件监视应用程序时,我发现 ExecuteRequestHandler占用总响应时间的近80%并且使应用程序响应非常慢.
为了提高应用程序的性能,我希望减少ExecuteRequestHandler所花费的时间.
我试图在互联网上搜索.但除了以下链接之外没有得到任何帮助.
ExecuteRequestHandler大部分时间都在使用
以上链接没有多大帮助.
任何关于以下两点的帮助都非常感谢.
1)如何减少ExecuteRequestHandler所用的时间
2)如何增加Web角色的线程池大小.
我经历过azure php webrole部署的奇怪行为,当我浏览页面时显示错误500错误的每一次部署,但是如果我再次发布没有任何更改而不是它的工作,我试图在事件查看器中找到一些东西但是那里没什么
一些调试信息:当发生错误时我使用远程桌面检查了IIS配置我注意到PHP处理程序指定了错误的路径,例如F:\ wwwroot\bin\php\php-cgi.exe但在服务器实际路径上是E:\wwwroot\bin\php\php-cgi.exe我认为驱动器号(F :)跟随我的系统从我发布的地方开始,但我说奇怪的是有一次它工作但是当我再次发布它时发生错误......
setup_web.cmd(我从https://azure.microsoft.com/en-us/documentation/articles/cloud-services-php-create-web-role/复制了它)
@ECHO ON
cd "%~dp0"
if "%EMULATED%"=="true" exit /b 0
msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
SET PHP_FULL_PATH=%~dp0php\php-cgi.exe
SET NEW_PATH=%PATH%;%RoleRoot%\base\x86
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%',maxInstances='12',idleTimeout='60000',activityTimeout='3600',requestTimeout='60000',instanceMaxRequests='10000',protocol='NamedPipe',flushNamedPipe='False']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PATH',value='%NEW_PATH%']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/handlers /+"[name='PHP',path='*.php',verb='GET,HEAD,POST,OPTIONS',modules='FastCgiModule',scriptProcessor='%PHP_FULL_PATH%',resourceType='Either',requireAccess='Script']" /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config /section:urlCompression /doDynamicCompression:True /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json; charset=utf-8',enabled='True']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /"[fullPath='%PHP_FULL_PATH%'].queueLength:50000"
Run Code Online (Sandbox Code Playgroud)
更新:解决这个问题后,我认为问题是:我在E:\驱动器上有我的项目文件夹,当我第一次发布时,azure创建E:\驱动器并使用cmdlet设置php处理程序路径,但是当我再次发布时,azure删除驱动E:\并创建驱动器F:\并尝试再次使用IIS,而不是抛出以下错误:
F:\approot\bin>cd "F:\approot\bin\"
F:\approot\bin>if "false" == "true" exit /b …Run Code Online (Sandbox Code Playgroud) 我使用的是Asp.net mvc4 WebRole,我发现这是一个Web应用程序,而不是一个Web站点.阅读本文后,我知道如何在Asp.MVC4中添加客户帮助程序功能.在网站应用中,我可以在app_code文件夹中添加一个cshtml文件,如下所示,以便我可以在另一个cshtml中使用我的自定义帮助方法.
@helper HotDeployButton(string value, string url , bool enable= true){
string enablestr = string.Empty;
if (!enable)
{
enablestr = "disabled=\"disabled\"";
}
<input type="button" name="@value" value="@value" onclick=" window.location.href='@url'" class="mobile-button" @enablestr />
}
@helper Img(string picName, string alt ){
string root = "/content/themes/default/images/";
string imgurl = root + picName;
<img alt="@alt" src="@imgurl" title="@alt" />
}
Run Code Online (Sandbox Code Playgroud)
在下面显示的另一个cshtml将使用HotDeployButton方法.
<div class="bottom-div">
@Html.Hidden("hdSelMinorPackId", "")
<!--Html.Hidden("randomId", (object)ViewBag.RandomId)-->
<input type="submit" name="ExcuteDeploy" id="ExcuteDeploy" value="Deploy" onclick="return validateVersion();"
class="mobile-button" />
@Helpers.HotDeployButton("Back", Url.Action("Index"))
</div>
Run Code Online (Sandbox Code Playgroud)
但在Asp.net …
razor azure-web-roles razor-declarative-helpers asp.net-mvc-4
azure-web-roles ×10
azure ×8
c# ×2
.net ×1
azure-cdn ×1
cdn ×1
deployment ×1
iis-7.5 ×1
php ×1
razor ×1
scalability ×1
threadpool ×1