小编Alk*_*sai的帖子

获得"乐观并发失败,对象已被修改".在实体框架6身份

当尝试从两个并行线程更新身份时,我收到并IdentityResult包含此错误消息:Optimistic concurrency failure, object has been modified.

我想刷新模型并重试.像这样的东西.

var result = await UserManager.AddClaimAsync(memberIdentity, new Claim("abc", "cde"));
if(!result.Succeeded)
{
   //reload identity or context

   //retry
   await UserManager.AddClaimAsync(memberIdentity, new Claim("abc", "cde"));
}
Run Code Online (Sandbox Code Playgroud)

关于如何重新加载身份或上下文的任何想法?

entity-framework-6 asp.net-identity

7
推荐指数
0
解决办法
969
查看次数

无队列运行Azure WebJob

有没有办法在没有收听队列的情况下安排工作?我的意思是我想每小时左右运行它并做一些事情,无论队列如何.这甚至有意义吗?我能想到的一个解决方案是每次完成工作时将消息排队到自己,但这对我来说看起来不是一个干净的解决方案.

azure azure-webjobs

5
推荐指数
1
解决办法
4141
查看次数

在没有刷新令牌的情况下获取AdWords customerId

我正在开发一个允许用户连接AdWords帐户的网络应用程序.1)因此,一旦用户连接他们的AW帐户,我将从AW API获取包含访问令牌和刷新令牌的令牌.到目前为止,这只是一个典型的OAuth2流程.

2)下次另一个用户连接相同的AW帐户时,AW不会向我提供刷新令牌,假设我将其存储在某处,这是预期的.

所以这就是问题,似乎没有办法在没有刷新令牌的情况下获取用户信息,这意味着我无法识别用户来检索刷新令牌.

我正在使用.NET库(Google.Apis.Analytics.v3),它不允许我在不提供刷新令牌的情况下请求客户信息......

以下是示例代码:

var tokenResponse = await adWordsService.ExchangeCodeForTokenAsync(code, redirectUri);
var adWordsUser = adWordsService.GetAdWordsUser();
var customerService = (CustomerService)adWordsUser.GetService(AdWordsService.v201502.CustomerService);
var customer = customerService.get();
Run Code Online (Sandbox Code Playgroud)

adWordsService只是API的包装.所以当我执行此行时,var customer = customerService.get()我收到以下错误:

ArgumentNullException:值不能为null.

参数名称:AdWords API需要开发人员令牌.如果您没有,请参阅https://developers.google.com/adwords/api/docs/signingup上的说明获取.

Google.Api.Ads.AdWords.Lib.AdWordsSoapClient.InitForCall(String methodName,Object []参数)

开发人员令牌就在那里,所有客户端ID都在那里.

如果我adWordsUser.Config.AuthToken = tokenResponse.AccessToken;在拨打电话之前添加此行,则会抱怨刷新令牌.

ArgumentNullException:值不能为null.

参数名称:看起来您的应用程序未配置为正确使用OAuth2.缺少必需的OAuth2参数RefreshToken.您可以运行Common\Utils\OAuth2TokenGenerator.cs来生成默认的OAuth2配置.

Google.Api.Ads.Common.Lib.OAuth2ProviderBase.ValidateOAuth2Parameter(String propertyName,String propertyValue)

所以问题是,如何在身份验证期间获取用户信息(在这种情况下customerId,根据本文https://developers.google.com/adwords/api/docs/guides/optimizing-oauth2-requests#authenticating_multiple_accounts)存储刷新令牌的目的是什么?

asp.net authentication google-adwords

5
推荐指数
1
解决办法
683
查看次数

在ASP.NET 5类库中找不到System.Math命名空间

我试图建立一个ASP.NET 5类库,它使用一些方法从 System.Math,即System.Math.Round(...),System.Math.Sqrt(...) 等等.

当我尝试构建它时.我收到以下错误:

Error   CS0103  The name 'Math' does not exist in the current context   ProjectName.ASP.NET Core 5.0    Class1.cs
Run Code Online (Sandbox Code Playgroud)

我已经包括在project.json文件中的一些包来修复其他错误,与System.LinqSystem.Collections.Generic,但我不精包含一个包System.Math.

我在哪里可以找到它?

这是我的project.json文件:

"version": "1.0.0-*",
"dependencies": {
},
"frameworks" : {
    "aspnet50" : { 
        "dependencies": {
        }
    },
    "aspnetcore50" : { 
        "dependencies": {
            "System.Runtime": "4.0.20-beta-22416",
            "System.Collections": "4.0.10-beta-22416",
            "System.Linq": "4.0.0-beta-22416",
            "System.Threading": "4.0.0-beta-22416"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net class-library asp.net-core

2
推荐指数
1
解决办法
1408
查看次数

在 TypeScript 中推断接口属性类型

假设我有这个接口和一个包含该类型的对象:

interface IMyData {
    a: TypeA;
    b: TypeB;
    c: boolean;
    d: string;
}

const myObj: { data: IMyData } = {
    data: {
         a: someValueA,
         b: someValueB,
         c: true,
         d: "someValueD"
    }
}

Run Code Online (Sandbox Code Playgroud)

现在我想从该对象获取单个属性并让函数推断返回类型:

function getField(obj: { data: IMyData }, field: keyof IMyData){
    return obj.data[field];
}

const myFieldStr = getField(myObj, "d"); // should infer type string
const myFieldBool = getField(myObj, "c"); // should infer type boolean
Run Code Online (Sandbox Code Playgroud)

如何定义getField函数以便推断返回类型?现在它会推断TypeA | TypeB | boolean | string


这是另一个(更复杂?)场景:

interface IMyValue<T> …
Run Code Online (Sandbox Code Playgroud)

typescript

2
推荐指数
1
解决办法
1530
查看次数