我正在尝试创建一个将时间从一个时区转换为另一个时区的小方法.我认为这很简单,但是当我部署它时,我得到了这个错误The UTC Offset of the local dateTime parameter does not match the offset argument.我的猜测是因为服务器与用户不在同一时区,因为这将在世界各地使用.
public object ConvertDate(DateTime inputTime, string fromOffset, string toZone)
{
var fromTimeOffset = new TimeSpan(0, - int.Parse(fromOffset), 0);
var to = TimeZoneInfo.FindSystemTimeZoneById(toZone);
var offset = new DateTimeOffset(inputTime, fromTimeOffset);
var destination = TimeZoneInfo.ConvertTime(offset, to);
return destination.DateTime;
}
Run Code Online (Sandbox Code Playgroud)
数字在哪里fromOffset,从用户时区转换为时间跨度,toZone是我们要转换为的区域的名称.此行发生错误var offset = new DateTimeOffset(inputTime, fromTimeOffset);
关于如何使这个工作的任何想法?
所以我正在尝试在azure上添加一个简单的数据库,但由于某种原因,数据库没有为该条目生成我的PK.
下面是用于创建数据库并执行输入的所有代码.
这是在控制台应用程序上的EF 6.1上
上下文
public BlizzardDbContext() : base("AzureSqlDb")
{
}
public DbSet<Maintenance> Maintenances { get; set; }
Run Code Online (Sandbox Code Playgroud)
模型
public class Maintenance
{
public Maintenance()
{}
public Maintenance(DateTime start, DateTime end, string info)
{
Start = start;
End = end;
Info = info;
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int MaintenanceId { get; set; }
public DateTime? Start { get; set; }
public DateTime? End { get; set; }
public string Info { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
测试保存更改失败
var context = new …Run Code Online (Sandbox Code Playgroud) 正如标题所说,我正在尝试使用auth0-lockAngular 2 SPA和ASP.NET Core API.我无法验证自己的测试.我也webpack用来打包应用程序并将所有其他引用删除到只有裸auth应用程序.
我按照他们的教程:https://auth0.com/docs/quickstart/spa/angular2
问题是,当我点击构造函数时,如果我慢慢地通过调试器逐步执行库代码,它将只进行身份验证.
constructor() {
debugger
// Add callback for lock `authenticated` event
this.lock.on("authenticated", (authResult) => {
debugger
localStorage.setItem('id_token', authResult.idToken);
});
}
Run Code Online (Sandbox Code Playgroud)
如果我删除调试器并让它以正常速度运行,它将永远不会进行身份验证; 该auth0-lock上来了,我可以登录,然后它会重新加载,但我不会被记录也不会出现在本地存储任何东西.
更新: 所以我认为我找到了这个问题的原因.使用Angular 2的最新组件路由器; 如果我评论路由,auth立即工作,但把它放回去我必须使用调试器来减慢它.否则,它不会auth.有没有什么办法解决这一问题?
我在进行身份验证时遇到了另一个问题,查询我的API我得到了回复,401 Unauthorized即使Auth0我说我已获得授权.我可以看到我的令牌localStorage以及来自另一个角度2教程的authHttp模块的使用.angular2-jwtAuth0
我的后端(asp.net Core)有一个方法[Authorise].我按照这里的设置https://auth0.com/docs/quickstart/backend/aspnet-core-webapi 了解如何开始,除了我遇到上述问题.
更新:事实证明这个问题是由于我在教程中跳过关于更改SignatureAlgorithm使用的部分,RS256我已经改变了它以使用RS256方法并且在这方面工作得很好但现在仍然存在问题当我在角度2上启用路由时不会认证这里是该项目的Github Repo:https://github.com/Toxicable/Templates
所以我将一个项目从我的ASP.NET Web API发送到Azure存储队列,我想向用户提供关于他们的项目在队列中的位置的一些反馈,以及能够更新他们的位置项目,如果他们回来或类似的东西.
并不是说它与这里的问题有很大关系,但这是我用来将项目放在队列中的方法
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigHelper.GetAzureStorage());
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference("my-queue");
await queue.CreateIfNotExistsAsync();
var messageJson = JsonConvert.SerializeObject(item);
CloudQueueMessage cloudQueueMessage = new CloudQueueMessage(messageJson);
await queue.AddMessageAsync(cloudQueueMessage);
Run Code Online (Sandbox Code Playgroud)
所以我一直在探索CloudQueueClient,CloudQueue但我能找到的CloudQueue.ApproximateMessageCount总是返回null.
我还尝试了一些谷歌搜索如何总是出现入门指南,特别注意我如何获得项目的大小然后在队列中的位置,所以它甚至可能吗?
所以我正在尝试为我们的办公室身份验证实现持久性令牌,这样用户每次进入新会话时都不必登录办公室.我目前用于验证用户的代码如下.
string authority = "https://login.microsoftonline.com/common";
var tokenCache = new ADALTokenCache(User.Identity.GetUserId());
AuthenticationContext authContext = new AuthenticationContext(authority, tokenCache );
var token = authContext.AcquireTokenSilentAsync(scopes, clientId, new UserIdentifier(userId, UserIdentifierType.RequiredDisplayableId));
Run Code Online (Sandbox Code Playgroud)
例外情况是: "Failed to acquire token silently. Call method AcquireToken"
首先用于获取令牌的方法如下
string authority = "https://login.microsoftonline.com/common";
var fileCache = new ADALTokenCache(User.Identity.GetUserId());
AuthenticationContext authContext = new AuthenticationContext(authority, fileCache);
var authResult = await authContext.AcquireTokenByAuthorizationCodeAsync(
authCode, redirectUri, credential, scopes);
Run Code Online (Sandbox Code Playgroud)
我使用的令牌缓存是一个db实现,我从一个我再也找不到的教程中做出来,如果我看到db我可以看到新的令牌在AcquireTokenByAuthorizationCodeAsync被调用时被插入到db中.
更新:
这是我在调用时来自authResult的结果AcquireTokenByAuthorizationCodeAsync

我已将Virbonet的答案标记为解决方案,但我没有修复它,但他确实向我解释了我哪里出错了
这个问题可能有一个非常简单的答案,但我不知道我将如何在SQL Server 2014中启用全文搜索.
我在网上搜索过去几个小时,一些关于SQL Server 2012的帖子说它在安装过程中的功能,但我去了那里,我没有选择启用它.
自从我运行以来,它绝对没有启用或安装
select SERVERPROPERTY('IsFullTextInstall')
Run Code Online (Sandbox Code Playgroud)
得到了一个0.
为了进一步扩展,我创建了一个全文目录,但是如果我右键单击一个表,则全文索引选项将显示为灰色.
此外,如果我尝试运行创建全文索引命令,我会收到错误
未安装全文搜索,或无法加载全文组件.
c# ×4
angular ×2
azure ×2
adal ×1
angular5 ×1
asp.net ×1
asp.net-core ×1
auth0 ×1
datetime ×1
office365 ×1
office365api ×1
sql-server ×1