我正在开发一个Web API,并将在Windows Azure中托管它.我应该考虑什么来决定在哪里部署它?据我所知,它可以部署为网站或云服务.很想知道你们看到的利弊.
谢谢!
我有一个共享模式的Windows Azure网站.
现在Azure显然在我的网站上添加了两个cookie:WAWebSiteID和ARRAffinity.我了解到那些cookie可用于启用Azure负载均衡器后面的应用程序和请求路由功能(ARR)的粘性会话.
尽管如此,我的网站不需要粘性会话,我也不希望有这些cookie.
首先,我从来没有想到粘性会话在我脑海中浮现,所以我编写了应用程序,以便在所有前端均匀分布的请求中很好地扩展.实际上,粘性会话会改变分发,因为有很多客户做了很多请求而客户几乎没有.当只有第一个请求被分发并且来自同一客户端的后续请求粘贴到同一服务器时,这会严重影响我的应用程序的整体性能.
其次,出于数据隐私原因,我运行了一个无cookie应用程序,任何cookie都被认为是"邪恶的".我知道我可以用一点点javascript删除它们,但我甚至不希望它们被传输到客户端.
问题是:如何在服务器端的Azure网站上禁用粘性会话和这两个cookie?
发布我的API应用程序后,我得到了ASP.NET的黄色错误屏幕.错误消息显示"名为'swagger_docs'的路径已经在路径集合中".
我怎样才能解决这个问题?
Asp.net 5有一个新的配置系统,它利用json文件进行设置.您必须.AddJsonFile(string fileName)使用新Configuration类的方法手动选择要加载的json文件作为配置.
同时,在Azure土地上,我们有一个漂亮的CloudConfigurationManager类,它应该处理来自Azure网站设置的抓取设置,或者web.config如果找不到Azure设置则处于活动状态.
但这两件事如何协同工作呢?我找不到任何文档.我想在Azure中管理我的设置以进行生产,但是使用config.json本地调试.我在查找任何示例或文档方面遇到了很多麻烦.
偶尔(很少)我的Azure网站将冻结并最终返回502错误(似乎需要5分钟).我在跟踪日志中看到了与"快照帮助器"相关的大量项目.
我没有明确使用这个,谷歌似乎只返回VMWare的结果.有谁知道这是什么吗?如果它是天蓝色的备份我的网站,有什么方法我可以安排它比美国东部时间上午11:00更慢的时间?
SnapshotHelper::TakeSnapshotInternal - no new files in CodeGen
SnapshotHelper::TakeSnapshot time since last: 01:19:59.9600775
SnapshotHelper::RestoreSnapshotInternal SUCCESS - File.Copy
SnapshotHelper::RestoreSnapshotInternal SUCCESS - process
SnapshotHelper::TakeSnapshotTimerCallback
SnapshotHelper::TakeSnapshotInternal - no new files in CodeGen
SnapshotHelper::TakeSnapshotTimerCallback
SnapshotHelper::TakeSnapshotInternal - no new files in CodeGen
SnapshotHelper::TakeSnapshot time since last: 00:19:59.9866142
SnapshotHelper::TakeSnapshotTimerCallback
SnapshotHelper::TakeSnapshotInternal - no new files in CodeGen
Run Code Online (Sandbox Code Playgroud) 我目前在Azure中托管了几十个网站,最近开始在每个Web应用程序的门户网站刀片中看到"内存资源耗尽"警告:
我在两个S3标准(大型)应用服务计划中托管我的网站,我在所有网站上收到警告,无论他们在哪个应用服务计划.
有趣的是,在查看任一应用服务计划的内存使用情况时,我总是低于40%,内存使用率实际上相当一致.我从来没有看到尖峰或任何远程接近85%内存使用量的东西我都被警告过.
我的问题是,我是否误解了警告信息?是否需要监视不同的内存资源?
我正在使用Asp.Net Core Azure Web App为客户端提供RESTful API,而客户端无法正确处理分块.
是否Transfer-Encoding: chunked可以在控制器级别或web.config中完全关闭?
编辑:我正在返回一个像这样的JsonResult:
[HttpPost]
[Produces( "application/json" )]
public IActionResult Post( [FromBody] AuthRequest RequestData )
{
AuthResult AuthResultData = new AuthResult();
return Json( AuthResultData );
}
Run Code Online (Sandbox Code Playgroud) 自Visual Studio 2017发布以来,我们可以使用新的C#7功能,我希望在部署Azure Web应用程序时可以使用它.
不幸的是,我们在使用持续部署(kudu git deploy)时会看到编译错误,所以Azure似乎还不支持新的工具链.
有什么我们可以做的就是让它现在起作用(除了直接发布程序集)吗?
我有一个C#项目X引用一个C#项目Y引用一个C#项目Z.所以依赖链看起来像这样:X => Y => Z.没有直接/显式依赖X => Z.当我构建时使用msbuild命令发布的包
msbuild DesignService.csproj /m /p:Configuration="Debug" /p:Platform="AnyCPU" /verbosity:quiet /t:Package /p:PackageLocation=X.zip /p:PackageAsSingleFile=True
Run Code Online (Sandbox Code Playgroud)
我得到一个包含X和Y的DLL的zip文件,但不是Z.然后当包发布时(到Azure应用服务),当调用Z中的代码时,我得到运行时错误,说DLL不能找到.如果我在X中添加Z作为直接/显式引用,它就可以正常工作.但我认为我不应该这样做.
如何在我的发布包中从msbuild获取Z的DLL而不在X中添加显式引用?
我知道我们可以RoleEnvironment.IsAvailable用来检查代码是否在Web/Worker角色中运行.如何Azure的网站?
我尝试了上面的RoleEnvironment代码,但它总是返回false.我需要运行一些配置代码,Application_Start所以我不能依赖于请求的东西.
任何帮助表示赞赏.
azure-web-sites ×10
azure ×6
asp.net-core ×2
c# ×2
arr ×1
c#-7.0 ×1
dependencies ×1
dll ×1
memory ×1
msbuild ×1