我正在尝试实现这里看到的内容:http://www.piotrwalat.net/nhibernate-session-management-in-asp-net-web-api/但我遇到了问题NhSessionManagementAttribute
.
我已经设置了断点OnActionExecuting(HttpActionContext actionContext)
,看看函数是否被调用 - 事实并非如此.
我仔细检查了我的global.asax.cs
文件,发现我实际上正在注册ActionFilter
:
GlobalConfiguration.Configuration.Filters.Add(new NhSessionManagementAttribute());
Run Code Online (Sandbox Code Playgroud)
我还装饰了我的控制器类本身,以及它对属性的操作无济于事:
public class ClientsController : ApiController {
static readonly ClientRepository repository = new ClientRepository();
[NhSessionManagement]
public IEnumerable<Client> GetAllClients() {
return repository.GetAll();
}
[NhSessionManagement]
public Client GetClient(int id) {
Client client = repository.Get(id);
if (client == null) {
throw new HttpResponseException(
new HttpResponseMessage(HttpStatusCode.NotFound)
);
}
return client;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么此操作过滤器不会触发其中的任何事件?
我刚开始玩这里引用的"atom-typescript"插件:
页面声明要使用atom-typescript,我们只需要:
现在创建一个新的.ts TypeScript文件并开始破解.AtomTS将负责将其编译为.js并为您创建一个默认的tsconfig.json TypeScript项目文件.
这是不是情况,因为我已经创建了一个简单的目录结构,并试图建立任何时候*的.ts文件中收到以下错误:
错误状态我需要利用'创建tsconfig.json项目文件'命令 - 我根本无法找到此命令.
我知道我可以手动创建文件,但我想知道文件是否可以自动创建.谢谢!
我最近一直在阅读很多关于线程的内容,因为我正在寻找能够处理多达10,000-20,000个客户端的高性能,可扩展的TCP服务器,每个客户端都通过基于命令的方式与服务器进行双向通信.系统.服务器将接收命令,并根据命令执行单个(或多个)任务.我的问题是如何在各种情况下适当地使用.NET线程构造,执行可能需要一分钟到几个小时的任务,具体取决于正在执行的工作.
最令我困惑的是,无论我在哪里阅读,我都会看到"使用手动创建的线程(或自定义线程池)来处理'长期运行'任务,并使用TPL执行短期任务或任务需要并行处理." 究竟什么是长期任务?这是5秒,60秒,一小时吗?
我应该在什么时间框架中使用这三种创建线程的方法:
我想到的另一个问题如下 - 说我的服务器实际上连接了20,000个客户端,每个客户端每秒发送1个命令(可以转换为一个或多个任务).即使使用强大的硬件,我也不可能将过高的工作负载推送到我拥有的任何线程池/工作项队列中,从而最终在队列缓慢填充到最大值后生成OutOfMemoryException?
任何见解将不胜感激.
我是编写TypeScript定义文件的开始,想知道以下两个结构之间的区别:
declare module activedirectory
Run Code Online (Sandbox Code Playgroud)
和
declare module "activedirectory"
Run Code Online (Sandbox Code Playgroud)
出于某种原因,前者允许我在我的一个Angular服务中使用任何类而没有任何类型的导入声明(例如,import activedirectory = require('activedirectory')
每当我在我的代码中声明后者时,它都会破坏对我的内部模块的引用,例如:
module myModule.Services {
'use strict';
export class MyService implements myModule.Interfaces.IMyService {
.....
Run Code Online (Sandbox Code Playgroud)
无法再找到"myModule.Interfaces"命名空间.
我试图通过我的View传递以下ViewModel的实例:
public class CompanyListViewModel<T> where T : ICompany
{
public IEnumerable<T> CompanyList;
public IEnumerable<string> StateList;
public CompanyListViewModel(IEnumerable<T> list)
{
CompanyList = list;
}
}
Run Code Online (Sandbox Code Playgroud)
View采用的方式如下:
@model Project.ViewModels.CompanyViewModels.CompanyListViewModel<ICompany>
Run Code Online (Sandbox Code Playgroud)
我的控制器代码将这样的内容传递给View:
CompanyListViewModel<ICompanyInListAsUser> model = new CompanyListViewModel<ICompanyInListAsUser>(_companyService.FilterByCompanyState(state));
Run Code Online (Sandbox Code Playgroud)
凡ICompanyInListAsUser
接口实现的ICompany
接口.本_companyService.FilterByCompanyState(state))
类返回IEnumerable
的Company
对象,进而实现ICompanyInListAsUser
接口.
出于某种原因,访问我的视图时收到以下错误:
The model item passed into the dictionary is of type 'Project.ViewModels.CompanyViewModels.CompanyListViewModel`1[Project.ViewModels.CompanyViewModels.ICompanyInListAsUser]', but this dictionary requires a model item of type 'Project.ViewModels.CompanyViewModels.CompanyListViewModel`1[Project.ViewModels.CompanyViewModels.ICompany]'.
如果ICompanyInListAsUser
接口确实实现了,为什么我收到此错误ICompany
?
任何帮助将不胜感激.
谢谢.
编辑
我还想说明我想在这里实现的目标.假设我的应用程序中有多个访问级别(例如用户和管理员).如果我的Company …
我正在尝试创建一个WCF服务,其中数千(~10,000)个客户端可以通过双工NetTcpBinding连接很长一段时间(几周,也许几个月).
经过一些阅读后,看起来在IIS中托管比自定义应用程序或Windows服务更好.
是否可以使用WCF来接受这种服务,甚至可能?如果是这样,我可以在哪里遇到限制或性能问题,例如增加WCF ListenBacklog和MaxConcurrentConnections?
谢谢!
我有一个非常小的节点Typescript项目,具有以下结构:
尝试在我的index.ts文件中导入"diff"模块时,如下所示:
import * as diff from 'diff';
Run Code Online (Sandbox Code Playgroud)
Atom-typescript突然失去了定位我的"fgtApp.Interfaces"命名空间的能力:
一旦我删除了import语句,node就能解析"fgtApp.Interfaces"命名空间,不会出现这样的问题:
这是atom-typescript中的错误还是我对导入这些外部模块的方式的理解中的错误?
我试图了解flatMap的工作原理.我知道这是一种处理Observable <Observable <T >>的方法.
无论如何,我正在测试它的行为并且坚持这个:
let plusDom = document.querySelector('#plus');
let minusDom = document.querySelector('#minus');
let minusSource = Rx
.Observable
.fromEvent(minusDom, 'click');
let plusSource = Rx.Observable
.fromEvent(plusDom, 'click');
plusSource
.flatMap(function(c){
console.log('Flatmap called');
return minusSource;
})
.subscribe(function(e){
console.log('done');
})
Run Code Online (Sandbox Code Playgroud)
这里是jsbin:https://jsbin.com/sefoyowuqe/edit ? html,js,console,output
我不明白这种行为:
3 clicks on plusDom prints:
Flatmap called
Flatmap called
Flatmap called
Run Code Online (Sandbox Code Playgroud)
1单击minusDom打印:
done
done
done
Run Code Online (Sandbox Code Playgroud)
为什么在点击minusDom时,它会像点击plusDom那样多次重放事件?
我试图利用Angular 2的动画功能,但发现我似乎无法设置与状态关联的CSS类,而我必须硬编码样式值,如下所示:
@Component({
animations: [
trigger('responseState', [
state('default', style({
color: '#31708f',
backgroundColor: '#d9edf7',
borderColor: '#bce8f1'
})),
state('success', style({
color: '#3c763d',
backgroundColor: '#dff0d8',
borderColor: '#d6e9c6'
})),
state('error', style({
color: '#a94442',
backgroundColor: '#f2dede',
borderColor: '#ebccd1'
})),
transition('default <=> success', animate('500ms ease-in')),
transition('default <=> error', animate('500ms ease-in')),
transition('error <=> success', animate('500ms ease-in'))
])
]
})
Run Code Online (Sandbox Code Playgroud)
我希望做的是:
@Component({
animations: [
trigger('responseState', [
state('default', style({
class: '.default-state'
})),
state('success', style({
class: '.success-state'
})),
state('error', style({
class: '.error-state'
}))
])
]
})
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这是否可行吗?
我开始玩ServiceStack了,到目前为止我很享受它,但我认为我的设计从开始就有缺陷.基本上,我有一个MSSQL数据库,我通过NHibernate访问.由于我的请求/响应DTO和服务应采取什么结构,我的困惑即将到来.
我将我的NHibernate映射放在MyProject.Common.Models下的一个单独的项目中,它包含一个"Client"类,如下所示:
namespace MyProject.Common.Models
{
public class Client
{
public virtual int ClientID { get; set; }
public virtual string Name { get; set; }
public virtual string Acronym { get; set; }
public virtual string Website { get; set; }
}
public class ClientMap : ClassMap<Client>
{
public ClientMap()
{
Id(x => x.ClientID, "ClientID").GeneratedBy.Identity();
Map(x => x.Name, "Name");
Map(x => x.Acronym, "Acronym");
Map(x => x.Website, "Website");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想为客户端提供CRUD单个客户端的能力,以及显示所有客户端的列表.到目前为止,我设计了我的单个客户端请求,如下所示:
[Route("/clients/{Id}", "GET")]
public class ClientRequest : IReturn<ClientResponse>
{
public …
Run Code Online (Sandbox Code Playgroud) 我正在使用最新版本的Chrome,当我使用圆角时,我无法让盒子阴影在我的div上正确显示..看起来像是切断了什么,请看下面的截图:
您可以在http://chronologic.ath.cx/Gardner/上看到测试站点
谢谢,
slashp
我试图使用以下Javascript阻止我的页面上的任何拖放:
document.addEventListener('dragstart', function (e) {
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,即使这确实阻止了拖放行为,拖动的元素也会保持选中状态(就像鼠标悬停在元素上一样),直到选择了另一个元素.
例如,如果我单击并拖动"AD CONFIG",您可以看到它仍然显示为鼠标在链接上方:
如何在仍然触发相应事件的同时禁用拖放以防止上述行为发生?
编辑:这是一个Plunker:http://plnkr.co/edit/pWZqe7uohqlVxMwyAS4d?p = preview
c# ×5
typescript ×3
.net-4.0 ×1
angular ×1
asp.net-mvc ×1
atom-editor ×1
c#-4.0 ×1
css ×1
css3 ×1
interface ×1
javascript ×1
jquery ×1
rest ×1
rxjs ×1
servicestack ×1
threadpool ×1
viewmodel ×1
wcf ×1
web-services ×1