Tag: Azure的web站点

Azure WebJobs – 托管在哪里? 它们作为长期运行的过程是否安全?

从Azure Web站点上的 Azure WebSite Always On和“Always On”设置的含义我假设Azure WebJobs托管在IIS中并使用IIS资源(以及我们的网站资源)。 此外,在定价页面: http : //azure.microsoft.com/en-us/pricing/details/websites/有一个声明: 按需,按计划运行自定义可执行文件和/或脚本,或作为Web站点实例中的后台任务连续运行。 连续WebJobs执行需要Always On。 计划的WebJobs需要Azure Scheduler Free或Standard。 因此我认为这是真的。 实际上,Azure WebJobs托管在Azure网站的IIS中。 注意:WebJobs可以连续且长时间运行。 然而,令我担心的是,执行长时间运行的进程/后台进程通常被视为反模式: 我可以使用线程在IIS上执行长时间运行的作业吗? 关注IIS上长时间运行的进程 ASP.NET长时间运行的任务。 线程正在中止exception 那么Microsoft Azure提出了一些看似反模式的东西吗? 附加问题:那么将Quartz.NET作为连续任务运行并进行“免费”简单后台任务调度会是一个好主意吗?

以编程方式从Azure网站内部检索站点URL

Azure网站有一个Azure提供的默认“站点URL”,类似于mysite.azurewebsites.net。 是否可以从网站内部(即从ASP.NET应用程序)获取此URL? Environment和HttpRuntime类中有几个属性包含网站名称(例如“mysite”),因此可以轻松访问。 当不是默认值时,事情变得复杂,但例如访问站点的临时插槽(具有类似mysite-staging.azurewebsites.net的站点URL)。 所以我只是想知道是否有直接获取此站点URL的简单方法。 如果没有,那么使用其中一个提到的类来获取站点名称,然后以某种方式检测站点槽(例如可以通过Azure门户的配置值设置)将是解决方案

在ASP.NET Core 2.0中从另一个(无用户交互)授权一个应用程序服务

我在面向Internet(PubWeb)的Azure中有一个Web API应用程序,因此它可以在任何地方使用。 我创建了一个Web API(再次,在Azure中,我们称之为InWeb)。 我想要强有力的安全规则: InWeb必须仅由PubWeb使用。 这可能涉及一些网络安全 – 这是一个简单的部分(在Azure中)。 PubWeb必须以某种方式由Azure AD授权才能使用InWeb服务。 我想到了服务负责人,证书等。 但我不确定。 那么2的最佳解决方案是什么? 更新 – 这里是InWeb Core 2.0 Auth设置: public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(sharedOptions => { sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddAzureAdBearer(options => Configuration.Bind(“AzureAd”, options)); services.AddMvc(options => { options.InputFormatters.Add(new TextPlainInputFormatter()); }); }

Azure网络应用程序突然不再支持文化

出乎意料的是,我们的Azure网络应用程序正在喷出有关不受支持的文化的错误。 我们会在首页上显示要显示的国家/地区列表,但这会突然出错。 在其他各种Web应用程序上也使用相同的代码,并且它们没有问题。 以下代码给出了一个问题。 private List Countries() { RegionInfo country = new RegionInfo(new CultureInfo(“nl-BE”, false).LCID); List countryNames = new List(); foreach (CultureInfo cul in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) { country = new RegionInfo(new CultureInfo(cul.Name, false).LCID); countryNames.Add(new SelectListItem() { Text = country.DisplayName, Value = country.DisplayName }); } return countryNames.GroupBy(x => x.Text).Select(x => x.FirstOrDefault()).ToList().OrderBy(x => x.Text).ToList(); } 我在for-each中放置了一个try-catch,因此我可以查明出错的文化。 以下文化突然返回错误: 4096 […]

以编程方式在Microsoft Azure Web应用程序中访问性能计数器

是否可以通过某些API从Web应用程序访问CPU,RAM和ASP.NET请求性能计数器? 当我使用System.Diagnostics.PerformanceCounter.NextValue方法调用它时,我得到exception: Access to the registry key ‘Global’ is denied. 我见过Web角色的例子,但没有关于网站的例子。

HTTPs客户端连接到Azure Web App上没有受信任链(非受信任CA)的服务器

我已经被困了大约3天试图连接到一个没有被可信CA签名的证书的服务器 – 你可以通过Azure门户添加CA的证书 – 但是没有任何影响。 显然,HTTP使用内核模块(!)HTTP.SYS。 我所看到的所有建议都要使用: ServicePointManager.ServerCertificateValidationCallback = Communicator.CustomServiceCertificateValidation; (或者在请求本身上不那么全球化的对应物) 或类似的东西: client.ClientCredentials.ServiceCertificate.SslCertificateAuthentication = new X509ServiceCertificateAuthentication() { CertificateValidationMode = X509CertificateValidationMode.Custom, RevocationMode = X509RevocationMode.NoCheck, //TrustedStoreLocation = StoreLocation.CurrentUser, CustomCertificateValidator = new PermissiveCertificateValidator() }; 但是,都没有被调用!! 一些更重要的细节: 这有效: try { ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; using (var wc = new WebClient()) { var res = wc.DownloadString(“https://untrusted-root.badssl.com/”); […]

Azure Web应用程序中的“无法创建SSL / TLS安全通道”

我的Azure Web应用程序需要连接到各种服务器(使用和不使用SSL)。 只要我在Windows 10上的本地IIS Express或IIS 7.5中运行应用程序,这就完美无缺。 一旦我将应用程序部署到Azure,它就会停止为需要SSL的某些服务器工作(不是全部)。 如果我通过ssllabs运行它们通常会得到一个A,而那些工作得到一个B或一个C. 所以我假设Azure实例上的.NET支持的密码少于本地支持的密码或类似的东西? 我试过这个 ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; 也试过没有任何TLS标志,因为这是大多数人的建议,但它没有帮助。 根据下面的post,10月有一个修复,但现在是12月。 https://social.msdn.microsoft.com/Forums/en-US/ca6372be-3169-4fb5-870f-bfbea605faf6/azure-webapp-webjob-exception-could-not-create-ssltls-secure-channel?forum= windowsazurewebsitespreview 它也与Cloud Flare无关。 有任何想法吗? 或者也许要开始,我如何看到我的应用程序尝试使用的密码和可用的密码?

将MVC 4应用程序发布到azure后的身份validation问题

我有一个基本的ASP.NET MVC 4站点,我在Azure网站上托管。 身份validation是表单身份validation,尚未从默认模板进行自定义。 每次我发布时,当我重新访问我的网站时,它只会挂起很长的超时(也许几分钟),最后会向我显示一条错误消息。 我可以通过在浏览器中删除网站的cookie并重新加载来恢复。 最初问题只是尝试访问需要身份validation的页面,但后来我将其添加到我的共享_Layout.cshtml : @if (User.IsInRole(“Admin”)) { @Html.ActionLink(“Admin”, “Index”, “Admin”) } 现在意味着在新发布之后根本没有页面可访问,因此我甚至无法单击注销链接,这是我以前能够解决问题的另一种方式。 我有错误的配置吗? 虽然我有自己可以使用的解决方法,但在发布更新后,这对于网站用户来说不是一个好的体验。 编辑:从ELMAH日志,似乎表单身份validation尝试在我调用IsInRole时创建SQL Express数据库。 我不明白为什么会这样做,因为我的表单身份validation都设置为使用我的SQL Azure数据库。 System.Web.HttpException (0x80004005): Unable to connect to SQL Server database. —> System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not […]

预留实例模式下Azure网站的新Azure分布式缓存

Windows Azure(6月7日宣布)的其他新function中似乎缺少的是能够在预留实例模式下为网站群集的预留实例定义分布式缓存。 截至目前,似乎只能为独立的Webroro或工作者角色创建分布式缓存。 有没有人知道解决方法或知道这是否会发生? 我问这个的原因是因为它迫使我为缓存创建一个专门的工作者角色,因为我受到成本的限制,我只能为缓存支付另外三个实例。 这让我得到了一个不容错的缓存服务,而实际上我托管网站的三个Webroles将是a)容错的; b)可以为分布式缓存贡献足够的内存,我可以获得更大的缓存,而不需要一个点失败与单个缓存工作者一样。

是否可以通过编程方式扩展Azure应用服务

我正在寻找一种以编程方式扩展/缩小Azure应用服务实例的方法。 这个问题之前已被问过(例如在下面的链接中)几个月前,当时无法回答,所以我只是想知道是否有什么变化和/或现在有一些新function可用。 是否可以以编程方式扩展Azure实例? 请注意,我们希望在“Azure应用服务”上执行此操作,而不是旧式“Azure云服务”。 我们希望以编程方式进行扩展的原因是我们可以使用自定义指标来控制它。 我们没有找到将自定义指标发布到Azure的方法,然后Azure也可以使用它来执行自动扩展。 我们确实发现Azure自动缩放规则可以接受Azure存储队列长度,因此理论上我们可以通过向队列添加/删除消息来控制队列长度,但它只是一种破解,并且只有在创建队列时它才有效在经典的Azure Web门户中,而不是新的Azure门户。