小编Kru*_*lur的帖子

对于某些键名,RSACryptoServiceProvider(RSACryptoServiceProvider) 构造函数在 .NET 3.5 中崩溃

如果您查看下面的代码,它只会创建一个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)

.net c# cryptography rsacryptoserviceprovider

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

MonoTouch和NUnitLite:什么是"主机"设置?

我正在使用NUnitLite,但一直想知道选项菜单中的主机设置是什么.这里的文档中没有解释这些选项:

http://docs.xamarin.com/ios/tutorials/Unit_Testing

有人可以说明这个可能会永远改变我生活的特征,只要我知道它吗?

nunit unit-testing xamarin.ios touch.unit

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

是否有机会将此原生iOS API调用"包装"为async/await?

考虑这个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的组合以隐藏丑陋的委托.

有任何想法吗?

c# xamarin.ios async-await

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

如何在Git上重新推送固定提交?

我修复了一些代码并用不正确的提交消息推送它.当我试图修复提交消息时,我意外地恢复了提交.现在的情况是:

  • 最新的commit =正确的提交消息,但先前提交的更改已撤消
  • previous commit =正确的提交内容,但错误的提交消息

所有这些都已被推送到服务器.

我想摆脱最新的提交,更改上一次提交的提交消息并将其推回服务器.

我对Atlassian Source Tree的解决方案很满意,但命令行也没问题.

git bitbucket-server

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

是否有技术原因使用 Swift 的无壳枚举而不是真实案例?

作为 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)

enums swift

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

如何将 Azure 函数输入参数绑定到存储帐户?

我正在尝试创建一个 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)

我有什么误解或做错了什么?

c# azure azure-storage azure-functions

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

为什么 Azure Function v2 无法绑定到 CloudTable?

我正在尝试在 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 中的错误还是我做错了什么?我正在引用这些 …

c# azure azure-functions

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

带动画的RemoveFromSuperView() - 不会触发AnimationWillEnd

我有一个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)

xamarin.ios

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

CATiledLayer:渲染可缩放的PDF页面 - 什么是"LevelsOfDetail"和"LevelsOfDetailBias"?

我做了一个小小的演示,用于查看可缩放的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对这些房产的帮助并没有向我解释任何事情.

有人可以解释一下吗?

cocoa-touch objective-c xamarin.ios

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

如果垃圾收集器在Monotouch 4中"更具攻击性",这意味着什么?

我偶然发现了这个问题:ContentView中的按钮导致MonoTouch运行时崩溃.Monotouch 4.0中的错误?而询问者对Monotouch的"更具侵略性"的垃圾收集器存在问题.

  • 有人可以解释为什么在询问者的情况下会发出错误(收集什么以及为什么?)?
  • "更具攻击性"是什么意思?我可以陷入什么陷阱?我应该避免什么?
  • 关于iOS5:苹果声称iOS5应用程序将获得一个内存警告,然后它将被杀死.与之前的任何其他版本不同,应用程序收到三个警告.这对Monotouch意味着什么?它将如何处理这种行为?

也许其中一个Xamarin团队可以总结一些注意事项并给出一个很好的解释?

我目前正在从MT 3.2.6升级到MT 4.1,并希望查看我的代码并检查需要更改的内容.

.net mono garbage-collection xamarin.ios boehm-gc

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