小编San*_*dke的帖子

如何防止在Azure网站生产< - >暂存插槽中交换Azure webjobs

我有一个Azure网站,其中包含一个包含多个实例的生产和临时插槽.

我在网站上运行了几个Azure webjobs,其中一些是触发其他连续的.

据我所知,触发的webjobs只能在一个实例上运行一次.

我目前的设置是:

  • 生产站点除了从分段交换之外没有其他部署

  • 暂存网站设置为从bitbucket持续部署

  • 使用"发布到Azure"将Webjobs从VS内部署到生产槽(因为AFAIK不支持基于计划的webjobs的连续部署)

  • 该网站的VS解决方案与包含webjobs的VS解决方案不同

我注意到当我交换生产和分期时,webjobs也被交换了!当我将新的webjob部署到生产中并随后进行网站部署然后进行交换时,我意识到了这一点,新部署的webjob不再位于生产槽中!

我的问题:

  1. 是否有可能阻止webjobs在生产和分期之间交换(webjobs实际上是完全不同的代码片段而不是网站)

  2. 什么是交换webjobs?二进制文件?时间表?两个?

  3. 如何阻止所有webjobs在临时插槽上运行?我的webjobs不需要高度可用,我可以轻松地离线测试它们.

  4. 如果我VS将webjobs部署到临时插槽并进行交换,那么当前的暂存插槽将缺少已部署的webjob,当我进行下一次网站更新时,我将丢失它,那么我应该在哪里部署我的webjobs?

有一个相关的线程,但它假设webjob与一个网站同时部署,这不是我目前的.

我真的很喜欢网站和webjobs,但似乎与连续独立部署webjobs和网站有关的故事被打破了.

真的很感激建议!

谢谢

azure-web-sites azure-webjobs

18
推荐指数
2
解决办法
5288
查看次数

使用autonomousSingleAppModePermittedAppIDs和UIAccessibilityRequestGuidedAccessSession与Meraki一起作为MDM进入单一应用程序模式

我使用Apple Configurator设置了少量设备作为监督设备.但是,我无法使用UIAccessibilityRequestGuidedAccessSession API 让应用程序成功进入单一应用程序模式.

我创建了一个配置文件,其中包含Meraki控制台中设置的限制,特别是我已将Meraki控制台中的"允许单一应用程序模式"字段设置为我的应用程序包ID.

我假设Meraki中的这个字段映射到autonomousSingleAppModePermittedAppIDs配置键.我添加了我的应用程序,这是一个IPA(未从应用程序商店安装)安装在受监督设备上.

配置文件和应用程序已在iPad上成功安装,但调用UIAccessibilityRequestGuidedAccessSession()仍然失败.

调用本身非常简单:

NSLog(@"requesting guided access");
UIAccessibilityRequestGuidedAccessSession(YES, ^(BOOL didSucceed) {
    if (didSucceed) {
        NSLog(@"entered guided access");
        self.inGuidedSessionMode = YES;
        [[[UIAlertView alloc] initWithTitle:@"entered single access mode" message:nil delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
    }
    else {
        NSLog(@"failed to enter guided access");
        [[[UIAlertView alloc] initWithTitle:@"Unable to enter single access mode" message:nil delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
    }
});
Run Code Online (Sandbox Code Playgroud)

设备日志显示以下条目

Mar 26 11:42:31 BayLeaf-Kiosk-4 backboardd[28] <Error>: HID: The 'Passive' connection 'xxxxxx' access to protected services is …
Run Code Online (Sandbox Code Playgroud)

mdm guided-access ios7

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

使用Azure存储客户端库3.0方法executequery <T>编译错误,其中T是tableentity

我必须遗漏一些明显的东西,但是以下失败并出现编译错误:

internal static IEnumerable<T> GetEntitiesWithCommaSeparatedRowKeys<T>(
string tableName, string partitionKey, 
string commaDelimitedStringOfRowKeys) where T: TableEntity
{
 ....
    TableQuery<T> entitiesQuery = new TableQuery<T>().Where(
                 TableQuery.CombineFilters(
                           TableQuery.GenerateFilterCondition("PartitionKey",
                           QueryComparisons.Equal, partitionKey),
                           TableOperators.And,
                           AzureHelper.GetFilterConditionForCommaDelimitedStringOfRowKeys(commaDelimitedStringOfRowKeys)
                           ));
    // compile error on this line
    IEnumerable<T> entities = table.ExecuteQuery<T>(entitiesQuery);
 ...
 }
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

'T' must be a non-abstract type with a public parameterless constructor 
in order to use it as parameter 'TElement' in the generic type or 
method 'Microsoft.WindowsAzure.Storage.Table.CloudTable.ExecuteQuery<TElement>
(Microsoft.WindowsAzure.Storage.Table.TableQuery<TElement>, 
Microsoft.WindowsAzure.Storage.Table.TableRequestOptions, 
Microsoft.WindowsAzure.Storage.OperationContext)'
Run Code Online (Sandbox Code Playgroud)

TableEntity显然有一个公共无参数构造函数,并且是非抽象的.当我在TableEntity上点击F12时,以下是来自元数据信息的对象(只是为了确保正确解析TableEntity类型).

namespace Microsoft.WindowsAzure.Storage.Table
{

    public class TableEntity : ITableEntity
    { …
Run Code Online (Sandbox Code Playgroud)

azure-storage azure-table-storage c#-4.0

3
推荐指数
1
解决办法
1355
查看次数