我想拥有一个包含两个Web应用程序的Azure Cloud Service.两个应用程序应具有相同的入站端口号(80),并且仅在主机头中有所不同.
是否可以将这些应用程序配置为不同的Web角色?我认为不可能将相同的端口指定为不同角色的端点.
我需要使用客户端证书对Azure Cloud Service Web角色的请求进行身份验证.如何将证书颁发机构(CA)根证书放在正确的受信任存储中?
我尝试在管理门户中上传它,然后使用AuthRoot商店名称在服务定义文件中定义它:
<Certificate name="RootCA" storeLocation="LocalMachine" storeName="AuthRoot" />
Run Code Online (Sandbox Code Playgroud)
真正奇怪的是它有效......但有时候才有效.它可能在实例重新引导后工作,但在服务更新或其他实例重新引导后可能无法工作.这似乎是Azure中的一个错误.
当我说"工作"时,我的意思是服务器成功接受客户端证书并处理请求.当我说"不起作用"时,我的意思是服务器在证书检查后没有协商连接并且"请求被中止:无法创建SSL/TLS安全通道".在客户端抛出异常.
如何使其稳定运行?
UPD:
在系统Windows事件日志中找到此记录(源是Schannel):
在请求客户端身份验证时,此服务器会向客户端发送可信证书颁发机构列表.客户端使用此列表选择服务器信任的客户端证书.目前,该服务器信任如此多的证书颁发机构,因此该列表已经变得太长了.因此该列表被截断.此计算机的管理员应检查受信任的证书颁发机构以进行客户端身份验证,并删除那些不需要信任的证书颁发机构.
我正在使用V12 Azure SQL.
要列出所有logins(server level),我们可以在master数据库上使用此查询:
SELECT * FROM sys.sql_logins;
Run Code Online (Sandbox Code Playgroud)
要列出所有用户(database level),我们可以在特定数据库上使用此查询:
SELECT * FROM sys.sysusers;
Run Code Online (Sandbox Code Playgroud)
可是如何才能让之间的对应关系logins和users?
system table这个通信存储在哪里?
考虑一下代码:
f(command1, UserId) ->
case is_registered(UserId) of
true ->
%% do command1
ok;
false ->
not_registered
end;
f(command2, UserId) ->
case is_registered(UserId) of
true ->
%% do command2
ok;
false ->
not_registered
end.
is_registered(UserId) ->
%% some checks
Run Code Online (Sandbox Code Playgroud)
现在假设有很多命令,它们最初都是调用is_registered.有没有办法概括这种行为(重构此代码)?我的意思是在所有命令中放置相同的案例并不是一个好主意.
我们有相当常见的Git工作流程,如本文所述.现在,在我们的构建服务器上,我们希望为开发,主控和最后一个版本制定构建计划.问题是最后一个发布分支在时间上有不同的名称(*release - **).
有什么方法可以解决这个问题?是否可以使用可由构建服务器使用的永久名称lastrelease创建别名?还要别的吗?
我有以下类来管理对资源的访问:
class Sync : IDisposable
{
private static readonly SemaphoreSlim Semaphore = new SemaphoreSlim(20);
private Sync()
{
}
public static async Task<Sync> Acquire()
{
await Semaphore.WaitAsync();
return new Sync();
}
public void Dispose()
{
Semaphore.Release();
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
using (await Sync.Acquire())
{
// use a resource here
}
Run Code Online (Sandbox Code Playgroud)
现在它允许不超过 20 个共享用法。
如何修改此类以允许每单位时间不超过 N 次共享使用(例如,每秒不超过 20 次)?
我在SQL Server(Azure SQL)中有一个表:
CREATE TABLE Commands
(
Id int NOT NULL PRIMARY KEY,
Body nvarchar(1000) NOT NULL,
Priority int NOT NULL,
DeliveryDate datetime NOT NULL,
VisibleFrom datetime NULL,
)
Run Code Online (Sandbox Code Playgroud)
该表还有一个索引:
CREATE NONCLUSTERED INDEX IX_PriorityAndDate ON Commands (Priority DESC, DeliveryDate ASC)
Run Code Online (Sandbox Code Playgroud)
然后我有两个会话.
第1节
WITH command AS
(
SELECT TOP(1) *
FROM Commands q
WHERE q.DeliveryDate <= @CurrentDate
AND (q.VisibleFrom IS NULL OR q.VisibleFrom <= @CurrentDate)
ORDER BY q.Priority DESC, q.DeliveryDate
)
UPDATE command SET command.VisibleFrom = DATEADD(SECOND, @LeaseTimeout, @CurrentDate)
OUTPUT inserted.Id, …Run Code Online (Sandbox Code Playgroud) 这是在Akka.NET 中使用的官方示例PipeTo():
Receive<BeginProcessFeed>(feed =>
{
//instance variable for closure
var senderClosure = Sender;
SendMessage(string.Format("Downloading {0} for RSS/ATOM processing...", feed.FeedUri));
//reply back to the sender
_feedFactory.CreateFeedAsync(feed.FeedUri).PipeTo(senderClosure);
});
Run Code Online (Sandbox Code Playgroud)
问题是我们为什么要Sender在这里使用闭包?为什么不使用:
_feedFactory.CreateFeedAsync(feed.FeedUri).PipeTo(Sender);
Run Code Online (Sandbox Code Playgroud)
在此示例和文档中,它表示必须在此处使用闭包.但我认为没有任何理由这样做.
如果我们使用ContinueWith()它是合理的,在continuation中使用闭包,但不作为PipeTo()参数.
我错过了什么吗?
我正在为Eclipse 3.4.2中开发的项目使用Ant构建脚本.它实际上是一个Flex 4项目(使用Flash Builder Eclipse插件).
一切正常.但总有一天发生了一些事情,现在每次运行时,Ant构建脚本的执行都会以静默方式终止.
在尝试调试Ant脚本时,IDE会在断点上停留片刻然后跳过它.
独立Ant执行(使用命令行)适用于我的脚本.
如何解决这个问题?有任何想法吗?
在 ASP.NET Core 2 应用程序中,我有一个带有[FromBody]属性的操作。ASP.NET 引擎将参数从 JSON 主体转换为模型对象。
但只有当Content-Type请求设置为时它才有效application/json。如果未设置标头,则返回415(不支持的媒体类型) HTTP 错误。
如何将绑定的默认格式化程序设置为 JSON [FromBody],以便即使Content-Type未设置请求标头也会绑定模型?
azure ×3
c# ×2
sql-server ×2
.net ×1
akka ×1
akka.net ×1
ant ×1
apache-flex ×1
asp.net-mvc ×1
certificate ×1
deadlock ×1
eclipse ×1
erlang ×1
git ×1
git-branch ×1
login ×1
refactoring ×1
semaphore ×1
sql ×1