我使用文本框通过SendKeys发送文本,但是当我在文本框中插入特殊字符时,我的应用程序崩溃了.例如,当我在文本框中输入"+"时,我收到此错误:SendKeys字符串'+'无效.
我需要一个使用SendKeys发送特殊字符的解决方案,这是我的代码的一部分:
SendKeys.Send(dropDownEffectsLeft1.SelectedItem.ToString() + dropDownEffectsRight1.SelectedItem.ToString() + txt1.Text);
Run Code Online (Sandbox Code Playgroud)
这就是所谓的文本框 txt1
我想我需要像a一样Regex来检查我是否txt包含任何特殊字符,并且我将使用:
Regex specialChar = new Regex(@"^[a-zA-Z0-9_@.-]*$");
Run Code Online (Sandbox Code Playgroud)
我非常感谢你的帮助.
我在没有参数的方法中捕获输出事件,它工作正常.但是当我尝试构建AOT时 - 产生以下错误.
期望0个参数,但得到1
Html code: SaveSortOrder($event)
backend code: SaveSortOrder() {}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 ASPNet 4.6.2 Web 应用程序中的服务标识从 Azure Key Vault 检索机密。我正在使用本文中概述的代码。在本地,一切正常,尽管这是因为它使用了我的身份。当我将应用程序部署到 Azure 时keyVaultClient.GetSecretAsync(keyUrl),调用时出现异常。
尽我所知,一切都配置正确。我创建了一个用户分配的身份,以便可以重复使用,并确保该身份可以访问 KeyVault 策略中的机密和密钥。
一个例外是AzureServiceTokenProviderException. 它很冗长,并概述了它如何尝试四种方法来进行身份验证。我关心的信息是它何时尝试使用托管服务标识:
尝试使用托管服务标识获取令牌。无法获取访问令牌。MSI 响应代码:BadRequest,响应:
我检查了应用程序见解,发现它试图与 400 结果错误建立以下连接:
http://127.0.0.1:41340/MSI/token/?resource=https://vault.azure.net&api-version=2017-09-01
Run Code Online (Sandbox Code Playgroud)
这有两件有趣的事情:
此时我不知道该怎么办。网上的例子都让它看起来很神奇,但如果我对问题的根源是正确的,那么有一些模糊的自动化设置需要修复。
为了完整起见,这里是我所有的相关代码:
public class ServiceIdentityKeyVaultUtil : IDisposable
{
private readonly AzureServiceTokenProvider azureServiceTokenProvider;
private readonly Uri baseSecretsUri;
private readonly KeyVaultClient keyVaultClient;
public ServiceIdentityKeyVaultUtil(string baseKeyVaultUrl)
{
baseSecretsUri = new Uri(new Uri(baseKeyVaultUrl, UriKind.Absolute), "secrets/");
azureServiceTokenProvider = new AzureServiceTokenProvider();
keyVaultClient = …Run Code Online (Sandbox Code Playgroud) 我的系统使用Apache-POI来管理一些xls文件.现在我有近300个xls文件,但看起来它们是旧的格式,所以我得到了这个例外:
提供的电子表格似乎是Excel 5.0/7.0(BIFF5)格式.POI仅支持BIFF8格式(来自Excel版本97/2000/XP/2003)
有没有办法处理或自动将所有这些文件转换为biff8格式?
我有两种不同语言的正则表达式,它们产生相同的奇数结果(javaScript和Flash).我想知道的不是如何解决它,而是为什么会发生这种行为?
正则表达式:
\[(\\{2}|\\\]|[^\]])*\]
Run Code Online (Sandbox Code Playgroud)
这里的目标是匹配一个括号中的字符串,并确保我不会停留在转义括号中.
如果我有文本输入[abcdefg]它是正确匹配的,但作为捕获组的一部分返回的唯一内容是g,在我期望的位置abcdefg.如果我将表达式更改为
\[((?:\\{2}|\\\]|[^\]])*)\],那么我得到我想要的结果.
那为什么会这样呢?这会在其他语言中保持一致吗?
注意:简化表达式以\[([^\]])*\]产生相同的问题.
javascript regex actionscript-3 capturing-group ecmascript-5
当我打电话给$scope.$broadcast我的孩子正在听的任何事件都没有被触发.简化示例如下:
下面是我想要完成的一个简化示例:
<div ng-app="app" ng-controller="parentCtrl">
<div ng-controller="childCtrl">
<b>Parent Event:</b> {{outer}}<br />
<b>Child Event:</b> {{inner}}<br />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
mc = angular.module('app', [
'app.controllers',
]);
angular.module('app.controllers', [])
.controller('parentCtrl', ['$scope', '$http', '$q', function ($scope, $http, $q) {
$scope.outer = 'not executed';
$scope.$broadcast('EventFromParent');
$scope.$on('EventFromChild', function () {
$scope.outer = 'executed';
});
}])
.controller('childCtrl', ['$scope', '$http', function ($scope, $http) {
$scope.inner = 'not executed';
$scope.$on('EventFromParent', function () {
$scope.inner = 'executed';
});
$scope.$emit('EventFromChild');
}]);
Run Code Online (Sandbox Code Playgroud)
我希望看到父母和孩子都被触发,但我没有被触发为Child.
EXPECTED ACTUAL
------ ------
Parent …Run Code Online (Sandbox Code Playgroud) 我认为CancellationToken在控制器中像这样使用将是一个好主意:
[HttpGet("things", Name = "GetSomething")]
public async Task<ActionResult> GetSomethingAsync(CancellationToken ct) {
var result = await someSvc.LoadSomethingAsync(ct);
return Ok(result);
}
Run Code Online (Sandbox Code Playgroud)
问题是,现在Azure Application Insights显示了许多类型的异常System.Threading.Tasks.TaskCancelledException: A Task was canceled.以及偶然的异常Npgsql.PostgresException: 57014: canceling statement due to user request。这是我不需要的噪音。
使用标准方法-将Application Insights注册为服务services.AddApplicationInsightsTelemetry(Configuration);。
我以为我可以进入应用程序管道并捕获上述异常,将它们转换为正常的响应。我将代码放在各个地方。它捕获任何异常,如果IsCancellationRequested,则返回一个虚拟响应。否则,它将抛出捕获的异常。
app.Use(async (ctx, next) =>
{
try { await next(); }
catch (Exception ex)
{
if (ctx.RequestAborted.IsCancellationRequested)
{
ctx.Response.StatusCode = StatusCodes.Status418ImATeapot;
}
else { throw; }
}
});
Run Code Online (Sandbox Code Playgroud)
该代码的工作方式是更改响应。但是,异常仍会发送到Application Insights。
RequestAborted.IsCancellationRequested可以尝试捕获特定的异常。原因是,如果我已经发现一个实现抛出了一种并非源自OperationCanceledException …c# cancellation-token azure-application-insights asp.net-core
我有一个数据库,用于存储我从外部来源引入的游戏的不同比赛信息。由于一些问题,数据库中偶尔会出现空白(可能从1个丢失的ID到几百个)。我想让程序为丢失的游戏提取数据,但是我需要首先获取该列表。
这是表格的格式:
id (pk-identity) | GameID (int) | etc. | etc.
Run Code Online (Sandbox Code Playgroud)
我曾想过编写一个程序来循环运行并查询从1开始的每个GameID,但似乎应该有一种更有效的方法来获取丢失的数字。
是否有使用SQL Server的简单有效的方法来查找范围中所有丢失的数字?
我有一种情况,我正在对大量行进行计算,如果我可以避开条件语句,我可以真正提高性能.
我需要的是给定的正,零或负整数我想分别得到结果1,0,-1.
所以,如果我这样做col/ABS(col),我将获得1为正数,-1为负数,但当然如果col等于0,那么我将得到一个错误.我不能得到错误.
这看起来很简单,但我无法绕过它.
我在从我认为是 JSON 的字符串数组中解码时遇到问题。
var result = [
"{gene: 'PEX2', go_bp: '0.766500871709', CombinedPvalue: '9.999999995E-4'}",
"{gene: 'PEX5', go_bp: '0.766472586087', CombinedPvalue: '9.999999995E-4'}",
"{gene: 'PEX7', go_bp: '0.766386859737', CombinedPvalue: '9.999999995E-4'}"
];
Run Code Online (Sandbox Code Playgroud)
您可以看到 JavaScript 对象文字中有 3 个与基因相关的字符串,每个字符串都编码为字符串。我怎样才能解码这些?
我尝试过JSON.parse,但它给了我一个错误。
for (var i = 0; i < result.length; i++)
console.log(JSON.parse(result[i]));
Run Code Online (Sandbox Code Playgroud)
Uncaught SyntaxError: Unexpected token g。
有简单的方法吗?
我有一个WebApi应用程序正在使用Windows Azure Active Directory承载身份验证来验证用户.用户通过身份验证后,我想查询Azure的Graph Api以获取有关该用户的更多信息.
我有一个有效的解决方案,但似乎非常hacky.我读取了Authorization标头并删除了承载部分,然后我使用AquireToken获取新标记:
var authHeader = HttpContext.Current.Request.Headers["Authorization"];
var tokenMatch = Regex.Match(authHeader, @"(?<=^\s*bearer\s+).+$", RegexOptions.IgnoreCase);
var result = authInfo.AuthContext.AcquireToken(resourceId, authInfo.Credential,
new UserAssertion(tokenMatch.Value));
return result.AccessToken;
Run Code Online (Sandbox Code Playgroud)
必须有一个更好的方法,但我已经尝试过AcquireToken许多不同的重载,这是我能让它工作的唯一方法.我尝试了AcquireTokenSilent,它在我的客户端应用程序中工作,因为TokenCache中有一个令牌,但是当我尝试使用WebApi时,似乎没有任何地方可以实现TokenCache.
authentication jwt asp.net-web-api owin azure-active-directory
我有一个相当复杂的页面,有很多ajax调用和后续的dom操作.在一个特定的调用中,它设置一个具有时间限制的间隔(基本上是一个计时器).我已经在clearInterval()任何地方设置,甚至在功能中,但在非常特殊的用例中(它很复杂,我无法确定重现缺陷的确切原因和步骤).
$(function() {
window.timer_interval;
// ...
})
function timer()
{
var current = 0;
time_limit = 60;
window.timer_interval = setInterval(function() {
minute = ( "0" + Math.round(Math.floor((time_limit - current)/60))).slice(-2);
seconds = ("0" + ((time_limit - current)%60)).slice(-2);
$('#timer').html(minute + ":" + seconds);
if (current >= time_limit) {
clearInterval(window.timer_interval);
window.timer_interval = false;
}
current = current + 1;
}, 1000);
}
Run Code Online (Sandbox Code Playgroud)
我已经使用了firbug来检测它的值window.timer_interval,它是false甚至条件都满足.一件事可能是一些图像传输失败(这是可能的应用程序行为,代码写入优雅地降级).我在Mozilla开发.
javascript ×4
c# ×2
regex ×2
algorithm ×1
angular ×1
angular-aot ×1
angularjs ×1
apache-poi ×1
asp.net ×1
asp.net-core ×1
azure ×1
browser ×1
character ×1
ecmascript-5 ×1
html ×1
jquery ×1
json ×1
jwt ×1
keyboard ×1
owin ×1
sendkeys ×1
sql ×1
sql-server ×1
xls ×1