localStorageInternet Explorer 11(Windows 7版本)中的对象包含某些函数的字符串表示形式,而不是您期望的本机调用.
这只打破了香草JavaScript和像JSFiddle这样的网站对这段代码没有任何问题,但我怀疑是因为有localStorage正确的polyfill 来纠正它.
以此HTML页面代码为例:
<!DOCTYPE html>
<script>
localStorage.setItem('test', '12345');
alert(localStorage.getItem('test'));
localStorage.clear();
</script>
Run Code Online (Sandbox Code Playgroud)
除了IE11之外,这在我安装的所有浏览器中运行良好.第一行' SCRIPT5002:预期的功能 ' 发生错误.
看一下setItemIE开发人员工具控制台中函数的实际类型,说明它是一个字符串......?
typeof localStorage.setItem === 'string' // true
Run Code Online (Sandbox Code Playgroud)
打印出字符串以setItem显示以下内容:
"function() {
var result;
callBeforeHooks(hookSite, this, arguments);
try {
result = func.apply(this, arguments);
} catch (e) {
callExceptHooks(hookSite, this, arguments, e);
throw e;
} finally {
callAfterHooks(hookSite, this, arguments, result);
}
return result;
}"
Run Code Online (Sandbox Code Playgroud)
奇怪的是,并非所有函数都被字符串替换,例如,相应的getItem函数确实是一个函数并且按预期工作.
typeof localStorage.getItem === 'function' // true
Run Code Online (Sandbox Code Playgroud)
将文档模式(仿真)更改为10或9仍然无法解决问题,并且两者都会导致相同的错误.将文档模式更改为8会出现以下错误" …
javascript html5 windows-7 local-storage internet-explorer-11
我试图发布我的网站以及一些WebJobs,但在Azure网站上创建网站和作业后,我看到VS.NET 2013上的一个错误:
Error 948 An error occurred while creating the WebJob schedule: No website could be found which matches the WebSiteName [mysitename] and WebSiteUrl [http://mysitename.azurewebsites.net] supplied
Run Code Online (Sandbox Code Playgroud)
我的网站有2个WebJobs,1个连续运行并且已经创建并运行,但需要按计划触发的那个就是这个问题.
关于这里可能出错的任何想法?
编辑1
只想添加计划作业创建为"按需"
这是我正在使用的发布设置:
{
"$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
"webJobName": "ArchiveShipments",
"startTime": "2015-01-11T00:00:00+05:30",
"endTime": null,
"jobRecurrenceFrequency": "Day",
"interval": 1,
"runMode": "Scheduled"
}
Run Code Online (Sandbox Code Playgroud)
我应用AzureSDK后BTW.2.5我发布时没有看到任何错误,但是没有创建预定的WebJob.
首先,我不是要问与C#相同的问题- Thread.Sleep的替代方案?,或替代在C#中的Thread.Sleep?.我不认为我使用它不正确,需要一个真正的替代特定情况.
在代码分析运行期间,我看到了一个令人惊讶的违规行为:
Thread.Sleep()的使用是有缺陷设计的标志.
我们都知道线程创建很昂贵,线程中的阻塞意味着池上的争用.我们也知道每个线程将分配一个兆内存,因此它应该有一个短的寿命,在UI上阻塞是邪恶的,使用睡眠时间是不可靠的等等.这导致我的观点,如果你真的需要执行睡觉,如果不是Thread.Sleep你应该使用什么?
Peter继续提到零睡眠是Thread.Sleep唯一正确使用放弃线程的时间片并允许其他线程处理的唯一正确用法.然后更可怕的是,这仅仅是因为非托管线程的限制,如果在CLR中重新实现将产生在应用程序中使用Thread.Sleep的副作用.事实上,常见的不良用法的所有要点都是不良用法的好例子.
我在生产代码中有以下情况,使用Thread.Sleep非常成功:
在这种情况下不使用Thread.Sleep,我还有其他选择吗?紧密的循环往往会让事情变得更糟,我不相信这会使它的使用变成"设计缺陷",尤其是因为UI上没有任何东西,只有后台线程.在多线程环境中等待其他事物以及影响代码的外部因素,这只是软件的本质,有时您需要等待......
我有一个Azure WebJob在使用以下日志输出运行20分钟后失败:
[02/27/2015 00:30:11 > 3e9b72: SYS INFO] Status changed to Initializing
[02/27/2015 00:30:21 > 3e9b72: SYS INFO] Run script 'Namespace.Class.DataProcessor.exe' with script host - 'WindowsScriptHost'
[02/27/2015 00:30:21 > 3e9b72: SYS INFO] Status changed to Running
[02/27/2015 00:30:23 > 3e9b72: INFO] Found the following functions:
[02/27/2015 00:30:23 > 3e9b72: INFO] Namespace.Class.DataProcessor.Functions.ManualTrigger
[02/27/2015 00:30:23 > 3e9b72: INFO] Executing: 'Functions.ManualTrigger' because This was function was programmatically called via the host APIs.
[02/27/2015 00:51:35 > 3e9b72: ERR ] Thread was being aborted.
[02/27/2015 …Run Code Online (Sandbox Code Playgroud) 我正在尝试以编程方式设置文件夹审核选项下的“适用于”字段。在 MSDN 中,代码示例使用 FileSystemAuditRule 类向文件夹添加新的审核规则。此类中没有任何明显的内容可以设置需要应用的特定审核规则。
这是我用来设置一些权限的代码:
const string myFolder = @"S:\Temp\SomeFolderToAudit";
var account = new SecurityIdentifier(WellKnownSidType.WorldSid, null).Translate(typeof(NTAccount));
FileSecurity fSecurity = File.GetAccessControl(myFolder, AccessControlSections.Audit);
fSecurity.AddAuditRule(new FileSystemAuditRule(account, FileSystemRights.WriteData | FileSystemRights.Delete | FileSystemRights.ChangePermissions, AuditFlags.Success));
File.SetAccessControl(myFolder, fSecurity);
Run Code Online (Sandbox Code Playgroud)
除了下面突出显示的选项之外,这可以很好地创建审核规则:

例如,我需要将其设置为“此文件夹、子文件夹和文件”或“仅限此文件夹”以外的任何内容。我不想遍历所有目录和文件并对它们设置相同的审核规则。我也不想尝试管理继承,规则将受到保护。我只需要一种最好使用托管代码来设置此选项的方法(如果这是唯一的方法,欢迎使用 P/Invokes)。
预先感谢您的任何帮助。
azure ×2
c# ×2
.net ×1
auditing ×1
html5 ×1
javascript ×1
thread-sleep ×1
wait ×1
windows ×1
windows-7 ×1