小编Jas*_*ome的帖子

.NET的StringBuilder是否是线程安全的

MSDN文档的常规"线程安全"部分,用于StringBuilder说明:

...任何实例成员都不保证是线程安全的......

但是这个陈述感觉它已被复制并粘贴到框架中的几乎每个类:

http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx

但是,Gavin Pugh的这些博客文章提到了以下的线程安全行为StringBuilder:

http://www.gavpugh.com/2010/03/23/xnac-stringbuilder-to-string-with-no-garbage/

http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/

此外,Reflector揭示的StringBuilder的源代码以及SSCLI源代码中的相应注释也提出了许多实现注意事项以确保线程安全性:

http://labs.developerfusion.co.uk/SourceViewer/browse.aspx?assembly=SSCLI&namespace=System.Text&type=StringBuilder

有没有人更深入地了解一个StringBuilder实例是否可以安全地在多个并发线程之间共享?

.net stringbuilder thread-safety

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

在Production中以最小权限运行sails.js.

我在Ubuntu Trusty上的节点0.10.33上使用Sails.js 0.10.5.我想以非root用户身份执行节点进程,在生产环境中具有尽可能少的权限.我很满意绑定到1024以下端口的各种选项,但我更关心目录权限.

理想情况下,我更喜欢节点进程只对其日志文件具有写访问权,而不是其他任何内容.它应该只对包含app.js及以下的目录具有读访问权限.

目前,由于在启动时运行的grunt任务,我需要授予./.tmp目录以及./views目录的写访问权限.我宁愿在部署时以不同的用户而不是在运行时执行grunt任务.该sails www命令似乎很有前途,但我无法得到想要的结果.

有人可以指出我正确的方向运行Sails.js,对其资产,视图等没有写入权限吗?

javascript ubuntu node.js gruntjs sails.js

8
推荐指数
1
解决办法
559
查看次数

自动构建过程是否应该更改版本控制?

我经常看到自动构建过程,包括持续集成构建,在构建期间将源文件的更改提交回源源自*的版本控制存储库.自动递增版本号是完成此操作的常见方案,但还有其他方法.

我的直觉是,这是一个坏主意,因为它可以使用与构建相关的提交来丢弃存储库历史记录,并且构建过程需要防止意外地重新触发自身.但是,我没有任何具体证据表明最好避免在构建期间提交更改.

任何人都可以引用参考文献讨论在自动构建期间提交版本控制的更改的优缺点吗?

*提交对单独工件存储库的更改是完全可以接受的.

version-control build-automation continuous-integration

6
推荐指数
1
解决办法
392
查看次数

创建MySQL数据库,用户和授予权限所需的最低权限是多少?

使用在AWS RDS中托管的MySQL 5.6或5.7或Docker MySQL容器,我想创建一个权限最小的用户,例如named creator,可以执行以下操作:

  • 创建一个新数据库.
  • 创建一个新用户.
  • 为新数据库中的所有表授予新用户SELECT和INSERT权限.

如果creator用户无权访问不负责创建的现有数据库,我更愿意.

这可以实现吗?

到目前为止,我的研究表明,这样的creator用户可能需要跨MySQL实例的全局SELECT和INSERT权限,但这似乎过多.

mysql amazon-rds

5
推荐指数
1
解决办法
280
查看次数

ASP MVC预览5和IIS 6 Windows身份验证

我刚刚建立了一个基本的ASP MVC网站,可以在我们的内部网上进行部署.它希望用户与IIS框位于同一个域中,如果您不是经过身份验证的Windows用户,则不应该访问.

我刚刚将它部署到运行在Server 2003 R2 SP2上的IIS6.Web应用程序配置了自己的池,并拥有自己的池用户帐户.Web应用程序的IIS目录安全性选项仅设置为"Windows Integrated Security",web.config文件具有:

<authentication mode="Windows" />
Run Code Online (Sandbox Code Playgroud)

从IIS6服务器本身的远程桌面会话,如果通过http:// localhost/myapp访问,IE7浏览器窗口可以成功验证和导航Web应用程序.

但是,同样来自服务器,如果通过服务器的名称访问(即http:// myserver/myapp),则IE7会显示一个凭据对话框,在三次尝试输入正确的凭据后最终返回"HTTP错误401.1 - 未经授权:访问被拒绝到期无效的凭证".

当工作站浏览到Web应用程序URL时(自然地使用服务器的名称而不是"localhost"),会出现同样的问题.

IIS6服务器是我们唯一的域的成员,并且没有启用防火墙.

有没有我无法正确配置的工作?

谢谢,


我已经尝试过Matt Ryan,Graphain和Mike Dimmick的建议,但没有成功.我刚刚构建了一个虚拟机测试实验室,其中包含Server 2003 DC和单独的服务器2003 IIS6服务器,我能够复制该问题.

我第一次尝试通过非localhost网址(即http:// iis/myapp)访问网站时,在IIS6服务器的系统事件日志中看到一个条目.FQDN网址也失败了.

来源:Kerberos,事件ID:4
kerberos客户端从服务器主机/ iis.test.local收到KRB_AP_ERR_MODIFIED错误.使用的目标名称是HTTP/iis.test.local.这表示用于加密kerberos服务票证的密码与目标服务器上的密码不同.通常,这是由于目标领域(TEST.LOCAL)中的同名机器帐户和客户端领域.

authentication asp.net-mvc iis-6

4
推荐指数
1
解决办法
4168
查看次数

PowerShell在紧密循环中屈服于操作系统

我以前遇到过调用System.Threading.Thread.Sleep(0)的建议; 在C#中的紧身衣循环中,以防止CPU占用并使用它产生良好的效果.

我有一个PowerShell脚本,有一个紧凑的循环,我想知道我是否应该调用[Thread] :: Sleep(0)或Start-Sleep 0或者PS引擎是否会偶尔为我收益.

powershell

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