如果您查看下面的代码,它只会创建一个RSACryptoServiceProvider. 密钥容器名称从基于各种参数创建名称的属性初始化。我在此演示代码中添加了硬编码值。
该代码在 Windows 2008 R2 服务器安装上运行,并且已经运行了数月,并为密钥容器名称返回了一个常量值。
几天前,代码停止工作,我们面临以下异常。使用已使用数月的密钥容器名称不再有效。服务器已重新启动,IIS 已重新启动 - 没有成功。只有在更改密钥名称后,它才再次开始工作。
有人可以解释为什么会发生这种情况以及如何解决吗?据我所知,这段代码没有具体化任何持久对象。为什么重启后还是会失败?从 MSDN (http://msdn.microsoft.com/de-de/library/ca5htw4f.aspx) 我读到构造函数“构造函数创建或重用使用 KeyContainerName 字段指定的密钥容器”。“重用”是否意味着它正在某处缓存这些东西,并且在这样做时它崩溃了并且现在被一个损坏的缓存版本卡住了?另请注意,当前许多其他机器上仍在使用相同的密钥名称 - 任何地方都没有问题。
这是崩溃的行:
using ( RSACryptoServiceProvider rsa = new RSACryptoServiceProvider( this.oCspParameters ) )
{
}
Run Code Online (Sandbox Code Playgroud)
这些是使用的 CspParameters:
private readonly CspParameters oCspParameters = new CspParameters
{
Flags = CspProviderFlags.UseMachineKeyStore,
};
this.oCspParameters.KeyContainerName = oProfile.KeyName;
Run Code Online (Sandbox Code Playgroud)
这就是关键名称:
public string KeyName
{
get
{
return string.Format( "API-{0}-v{1}", "TestClient", "1.0.0.0" );
}
}
Run Code Online (Sandbox Code Playgroud)
最后是例外:
CryptographicException: An internal error occurred.
Service Operation: ISessionService.Identify #f173250b-d7ac-45d5-98ed-7fffcf37d95a …Run Code Online (Sandbox Code Playgroud) 我正在使用NUnitLite,但一直想知道选项菜单中的主机设置是什么.这里的文档中没有解释这些选项:
http://docs.xamarin.com/ios/tutorials/Unit_Testing
有人可以说明这个可能会永远改变我生活的特征,只要我知道它吗?
考虑这个iOS 6 API调用:
eventStore.RequestAccess(EKEntityType.Event, (granted, error) => {
if(granted)
{
events = this.GetLocalCalendarEvents(eventStore);
}});
Run Code Online (Sandbox Code Playgroud)
我有一些代码可以访问日历并读取事件.在iOS5上,这只是有效但在iOS6上我必须首先要求访问,如果被授权,则开始阅读.我想知道我是否能以某种方式将它包装成async/await的组合以隐藏丑陋的委托.
有任何想法吗?
我修复了一些代码并用不正确的提交消息推送它.当我试图修复提交消息时,我意外地恢复了提交.现在的情况是:
所有这些都已被推送到服务器.
我想摆脱最新的提交,更改上一次提交的提交消息并将其推回服务器.
我对Atlassian Source Tree的解决方案很满意,但命令行也没问题.
作为 Swift 的新手,这就是我发现的:
enum HttpMethod {
static let post = "POST"
static let get = "GET"
}
// can assign to string property.
request.httpMethod = HttpMethod.post // --> "POST"
Run Code Online (Sandbox Code Playgroud)
阅读本文后,使用无壳enum而不是无壳的原因对struct我来说很有意义,但这不是我在这里感兴趣的事情。
拥有强大的 C# 背景,这就是我实现它的方式:
enum HttpMethod: String {
case post = "POST"
case get = "GET"
}
// I'd even consider this alternatively:
enum HttpMethod: String {
case post
case get
}
// Must retrieve string value
request.httpMethod = HttpMethod.post.rawValue // --> "POST" or "post" …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个 Azure 函数(.NET 核心)来从存储帐户中检索 SaS,并且正在努力理解为什么我无法访问存储。
函数签名:
public static async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
[StorageAccount("StorageConnectionString")] StorageAccount storage,
ILogger log)
Run Code Online (Sandbox Code Playgroud)
运行时出现这个错误:
错误索引方法“GetBlobSaS”Microsoft.Azure.WebJobs.Host:无法将参数“存储”绑定到类型 StorageAccount。确保绑定支持参数类型。如果您使用绑定扩展(例如 Azure Storage、ServiceBus、Timers 等),请确保您已在启动代码(例如 builder.AddAzureStorage()、builder.AddServiceBus() 中调用了扩展的注册方法)、builder.AddTimers() 等)。
如果我直接创建存储帐户引用它工作正常:
var storage = StorageAccount.NewFromConnectionString(System.Environment.GetEnvironmentVariable("StorageConnectionString"));
Run Code Online (Sandbox Code Playgroud)
我有什么误解或做错了什么?
我正在尝试在 Visual Studio 2019 中运行 HTTP 触发的 v2 函数。它应该将其输出写入名为“history”的 Azure 存储表中。
我装饰了一个我的功能
[return: Table("history")]
我让它返回TableEntity.
这会导致“无法将 Table 绑定到 CloudTable”的异常。异常的原因是CloudStorageAccount客户端代码中的检查:
bool bindsToEntireTable = tableAttribute.RowKey == null;
if (bindsToEntireTable)
{
// This should have been caught by the other rule-based binders.
// We never expect this to get thrown.
throw new InvalidOperationException("Can't bind Table to type '" + parameter.ParameterType + "'.");
}
Run Code Online (Sandbox Code Playgroud)
另一个函数绑定到 aCloudTable作为输入参数并遭受相同的异常。
虽然绑定到CloudTable应该工作(https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-table#input---c-example---cloudtable)它显然没有.
这是 Azure 存储客户端 SDK 中的错误还是我做错了什么?我正在引用这些 …
我有一个UIView并尝试使用动画(淡入alpha 0.0)从超级视图中删除它.工作正常但是从未从superview中删除视图,尽管我向AnimationWillEnd添加了一个委托.这是代码.未写入控制台输出,并且未删除视图.怎么了?
UIButton oBtn = UIButton.FromType(UIButtonType.RoundedRect);
oBtn.Frame = new RectangleF(0, 0, 100, 20);
oBtn.SetTitle("Hide", UIControlState.Normal);
oBtn.Center = new PointF(80, 120);
oBtn.TouchUpInside += delegate(object sender, EventArgs e) {
UIView.BeginAnimations(null);
UIView.AnimationWillEnd += delegate {
Console.WriteLine("Removed.");
oView.RemoveFromSuperview();
};
UIView.SetAnimationDuration(2);
UIView.SetAnimationBeginsFromCurrentState(true);
oView.Alpha = 0.0f;
UIView.CommitAnimations();
};
oView.AddSubview(oBtn);
Run Code Online (Sandbox Code Playgroud) 我做了一个小小的演示,用于查看可缩放的PDF页面.基本上,我Mono在http://www.olivetoast.com/blog/2009/08/simple-uiscrollview-catiledlayer-pdf-example/上看到了这个例子.
您可以在我的博客中找到我的版本:http://www.wildsau.net/post/2011/02/28/Simple-UIScrollView-CATiledLayer-PDF-Example-%28MonoTouch-version%29.aspx
但是,我无法弄清楚CATiledLayer的" LevelsOfDetail"和" LevelsOfDetailBias"属性是什么.我可以设置任何值组合,但不能发现差异.Apple对这些房产的帮助并没有向我解释任何事情.
有人可以解释一下吗?
我偶然发现了这个问题:ContentView中的按钮导致MonoTouch运行时崩溃.Monotouch 4.0中的错误?而询问者对Monotouch的"更具侵略性"的垃圾收集器存在问题.
也许其中一个Xamarin团队可以总结一些注意事项并给出一个很好的解释?
我目前正在从MT 3.2.6升级到MT 4.1,并希望查看我的代码并检查需要更改的内容.
xamarin.ios ×5
c# ×4
.net ×2
azure ×2
async-await ×1
boehm-gc ×1
cocoa-touch ×1
cryptography ×1
enums ×1
git ×1
mono ×1
nunit ×1
objective-c ×1
swift ×1
touch.unit ×1
unit-testing ×1