Tag: azure web sites

如何使用超时Azure Web App的长响应来防止HttpWebRequest

我们在C#中使用HttpWebRequest从Azure Web App中的Internet资源获取数据。 问题是Azure限制了它保持连接活动的时间( 大约240秒 )。 由于我们的应用程序的性质,响应有时需要超过240秒。 发生这种情况时,网页将变为白色,“查看源代码”将显示零源代码(这使得此问题难以调试)。 以下是一些示例代码: webRequest = WebRequest.Create(PAGE_URL) as HttpWebRequest; webRequest.Method = “POST”; webRequest.ContentType = “application/x-www-form-urlencoded”; webRequest.CookieContainer = cookies; webRequest.Timeout = Timeout.Infinite; webRequest.KeepAlive = true; StreamWriter requestWriter2 = new StreamWriter(webRequest.GetRequestStream()); requestWriter2.Write(postString); requestWriter2.Close(); WebResponse response = webRequest.GetResponse(); Stream stream = response.GetResponseStream(); 添加webRequest.Timeout和webRequest.KeepAlive没有解决问题。 jbq在这个post中提到他通过每5秒发送一个“换行符”来解决这个问题,但是没有解释如何完成这个。 他正在回答有关Azure VM的问题,但我认为Azure Web App在我认为负责超时的负载均衡器方面会有类似的行为。 问题:我如何发送一个HttpWebRequest,然后发送另一个HttpWebRequest, 而前一个 HttpWebRequest使用空行运行以维持连接并阻止Azure负载均衡器(?)超时蔚蓝应用程序? 是否需要使用新的会话变量? 也许是异步方法? […]

部署在Azure Web App / Azure API上时缺少CORS标头

我创建了一个OWIN托管的WebAPI 2 。 还有一个Web应用程序( AngularJS ),它使用API​​并充当客户端。 我已经将必要的CORS代码添加到Startup.cs ,并将其托管在不同于客户端的端口上的本地IIS中,并确认它修复了Cors问题。 然后,我将这两个应用程序部署到Azure(我已将两者都放在Azure上作为Web应用程序,我也尝试将OWIN放到当前处于预览状态的Azure API中)但是 – 预检请求现在失败了(没有Access-Control-Allow-Origin出现在响应中)。 问:我不知道Azure的某些特定内容吗? 为什么OWIN在部署时没有提供此标头,但是它正在使用localhost? 我在应用程序的Azure刀片设置的属性窗口中看不到任何约束。 笔记: 关于我正在使用的设置的一些细节: 使用Owin , WebAPI2 , Ninject , SignalR 在每个后续请求的头文件中发布并提供自定义令牌,并使用自定义filter进行validation。 我现在正在尝试的是* Startup.cs的相关部分: public void Configuration(IAppBuilder appBuilder) { appBuilder.UseCors(CorsOptions.AllowAll); HttpConfiguration config = new HttpConfiguration(); config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; //bind IClientsNotifier with method returning singleton instance of hub var ninjectKernel = NinjectWebCommon.GetKernel(); ninjectKernel.Bind().ToSelf().InSingletonScope(); […]

如何在Web App Service中使用“Azure文件存储”?

我一直在努力寻找一些资源来帮助解释我们如何使用文件存储与Web App服务。 有一些方法可以将它与旧的Web角色一起使用,请点击此处http://fabriccontroller.net/blog/posts/using-the-azure-file-service-in-your-cloud-services-web-roles-and-工人角色/ 但是,“Azure Web服务”中没有OnStart()方法。

ASP.NET 5:响应中的Access-Control-Allow-Origin

根据我的理解,当相应地启用CORS时,响应模型应包括以下头信息(假设我想允许所有内容): Access-Control-Allow-Origin: * Access-Control-Allow-Method: * Access-Control-Allow-Header: * 在Startup启用它: public void ConfigureServices(IServiceCollection services) { //… services.AddCors(); services.ConfigureCors(options => { options.AddPolicy(“AllowAll”, p => p.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials()); }); //… } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { //… app.UseCors(“AllowAll”); //… } 问题是这些头文件都没有返回,并且在尝试从API请求时出现以下错误: 对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此不允许Origin’http:// localhost ‘访问。

Azure网站中的站点无法处理X509Certificate2

我在Azure网站(不是托管服务)中有网站,我需要在那里处理带有私钥的.pfx证书。 var x509Certificate2 = new X509Certificate2(certificate, password); 但我面临以下例外: System.Security.Cryptography.CryptographicException: The system cannot find the file specified. at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) 在文章http://blog.tylerdoerksen.com/2013/08/23/pfx-certificate-files-and-windows-azure-websites/我发现它发生是因为默认情况下系统使用用户的本地目录存储密钥。 但Azure网站没有本地用户配置文件目录。 在同一篇文章中,作者建议使用X509KeyStorageFlags.MachineKeySet标志。 var […]

在Application Insights指标中为每个请求添加自定义属性

我喜欢将自定义属性添加到Application Insights 为我的应用程序的每个请求采取的指标。 例如,我想添加用户登录和租户代码,例如我可以在Azure门户中对指标进行分段/分组。 相关的doc页面似乎是这样的: 设置默认属性值 但是示例是针对事件(即gameTelemetry.TrackEvent(“WinGame”); ),而不是针对HTTP请求: var context = new TelemetryContext(); context.Properties[“Game”] = currentGame.Name; var gameTelemetry = new TelemetryClient(context); gameTelemetry.TrackEvent(“WinGame”); 我的问题: 什么是请求的相关代码,因为我目前没有特定的代码(它似乎由App Insights SDK自动管理):只是创建一个TelemetryContext足够吗? 我是否应该创建TelemetryClient ,如果是,我应该将其链接到当前请求吗? 怎么样 ? 我应该把这段代码放在哪里? 在global.asax的Application_BeginRequest方法中可以吗?