我试图在.NET 4上新的Parallel Stacks的上下文中理解BlockingCollection的目的.
在MSDN文档说:
BlockingCollection用作IProducerConsumerCollection实例的包装器,允许从集合中删除尝试以阻止数据可用于删除.类似地,可以创建BlockingCollection以强制执行IProducerConsumerCollection中允许的数据元素数量的上限; 然后可以阻止对集合的添加尝试,直到空间可用于存储添加的项目.
但是,当我查看一些IProducerConsumerCollection的实现时,比如ConcurrentQueue,我看到它们提供了一个无锁,线程安全的实现.那么为什么需要BlockingCollection提供的锁机制呢?MSDN中的所有示例都显示通过BlockingCollection包装器使用这些集合,直接使用这些集合有哪些麻烦?使用BlockingCollection会产生什么好处?
我已经尝试了一切,甚至卸载了asp.net mvc3,我无法让HandleError全局过滤器工作.
我在Global.asax中设置了HandleError过滤器:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
Run Code Online (Sandbox Code Playgroud)
我也启用了CustomErrors(如果我设置defaultRedirect ="Error"并不重要,我认为这是在文档中因为旧版本的mvc需要):
<customErrors mode="On" />
Run Code Online (Sandbox Code Playgroud)
尝试浏览页面直到错误被引发,你从localhost或使用主机名,在开发服务器或IIS 7.5中,它总是重定向到标准状态500页,而不是我自定义Error.cshtml视图,我已在共享中创建.这是错误视图代码:
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Oooops";
}
<h2>Ooops Something really bad happened!</h2>
Run Code Online (Sandbox Code Playgroud)
另外我注意到,如果我创建一个新的ASP.NET MVC3项目,然后选择"Internet Application"模板,并且只是在该项目中启用customErrors,那么HandleError过滤器开始正常工作,但是使用空的MVC3模板却没有.
我想澄清一下,确实我可以在调试时看到正在处理的错误视图,但浏览器始终显示错误500页面.
最近我在Visual Studio 2010中安装了Power Tools Extension它工作得很好,但是我的文本着色主题(Nightfall)和扩展的Colorized Parameter功能都有问题.
由于主题文本前颜色为灰色,因此当Power Tools Extensions使用我的文本颜色显示参数帮助工具提示时,它将变得不可读:
有没有办法更改参数帮助背景颜色?
我正在创建一个ServiceFactory来控制通过IIS 7暴露的服务的内部化.
但是我对ServiceHost的行为感到惊讶.虽然我有0个服务配置文件,但无论我在哪里初始化一个新的ServiceHost,如下所示:
var host = new ServiceHost(typeof(MyService), baseAddresses);
Run Code Online (Sandbox Code Playgroud)
接下来,我只想在构建处于调试模式时添加一些行为:
#if DEBUG
host.Description.Behaviors.Add(new ServiceDebugBehavior());
#endif
Run Code Online (Sandbox Code Playgroud)
但是,此代码失败导致ServiceDebugBehavior已应用!尽管我没有配置文件,并且没有应用于服务类的属性,但主机已经具有此行为并且还应用了5个!
这是预期的行为吗?如果我想在发布版本上禁用ServiceDebugBehavior怎么办?
提前致谢,
我试图用一个依赖于COM接口的对象做TDD.我虽然在进行开发测试时嘲笑COM接口,但在集成测试中做到了.
但是,我无法模拟COM接口,我尝试使用Moq,它会引发异常:
System.TypeLoadException未被用户代码处理Message =无法从程序集'DynamicProxyGenAssembly2,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'加载类型'Castle.Proxies.iTunesAppProxy'.该类型被标记为符合类型等效的条件,但它具有通用参数,或者它不是结构,COM导入的接口,枚举或委托
是否可以与其他框架一起使用?你如何使用COM依赖对象进行TDD?
在此先感谢!或代表
我试图从外部网站访问Office 365中的Sharepoint列表数据.我在Azure Active Directory中注册了我的应用程序,并且我已经完成了创建和信任certifacte以及获取访问令牌的所有过程.
Add-Type -Path ".\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
$authenticationContext = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext -ArgumentList "https://login.microsoftonline.com/{myTenantId}/", $false
$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cer.Import(".\WithPrivateKey.pfx", "privateKey", [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::MachineKeySet)
$clientAssertion = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.ClientAssertionCertificate -ArgumentList "{myClientId}", $cer
$authenticationResult = $authenticationContext.AcquireToken("https://{tenantName}.sharepoint.com", $clientAssertion)
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer " + $authenticationResult.AccessToken)
Run Code Online (Sandbox Code Playgroud)
我可以通过在请求标头中显示访问令牌来成功调用Sharepoint REST Api.
$response = Invoke-RestMethod -Uri https://{myTenantName}.sharepoint.com/sites/devSite/_vti_bin/ListData.svc/TestList -Method Get -Headers $headers
Run Code Online (Sandbox Code Playgroud)
但是我不能这样做来访问asmx端点,比如Lists.asmx,每当我尝试调用那些服务上的任何方法时,我都会获得401 UNAUTHORIZED
$body = '<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetList xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<listName>TestList</listName>
</GetList>
</soap12:Body>
</soap12:Envelope>'
$response = Invoke-WebRequest -Uri https://{myTenantName}.sharepoint.com/sites/site/_vti_bin/Lists.asmx -Method Post -ContentType 'application/soap+xml' …
Run Code Online (Sandbox Code Playgroud) c# ×3
.net ×1
asp.net ×1
asp.net-mvc ×1
moq ×1
oauth ×1
office365 ×1
razor ×1
service ×1
sharepoint ×1
tdd ×1
wcf ×1
web-services ×1