我尝试在web.config中为asp.net mvc应用程序设置executionTimeout.
<location path="Home/Index">
<system.web>
<httpRuntime executionTimeout="5"/>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
任何在Index动作中使用Thread.sleep
public ActionResult Index()
{
Thread.Sleep(30000);
return View();
}
Run Code Online (Sandbox Code Playgroud)
另外,我将complilation的调试设置为"false".在操作休眠约30秒后,"请求超时"异常不会抛出并且视图已成功呈现.
任何人都知道如何使executionTimeout在asp.net mvc中工作?
我有一些这样的逻辑,在将库存保存到数据库之前,我将检查库存中是否存在相同的库存代码.我的问题是我应该在服务层或存储库层中放置逻辑.这里是示例代码:
选项1:放入服务层,我将IsAccountAlreadyExists方法放在服务层中
public override void Save(AccountInfo accountInfo)
{
using (var scope = new TransactionScope())
{
if(this.IsAccountAlreadyExists(accountInfo))
{
throw new AccountAlreadyExistedException(
"Account Code : " + accountInfo.AccountCode +
" already existed.");
}
accountRepository.Save(accountInfo);
scope.Complete();
}
}
Run Code Online (Sandbox Code Playgroud)
选项2:我将把IsAccountAlreadyExists逻辑移动到存储库层.
public override void Save(AccountInfo accountInfo)
{
try
{
using (var scope = new TransactionScope())
{
accountRepository.Save(accountInfo);
scope.Complete();
}
}
catch(AccountAlreadyExistedException e)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
你怎么看?
我的问题是如何在c#中处理sql异常,无论如何都要检查从数据访问层抛出什么样的sql异常?例如,如果db抛出唯一约束异常或外键异常,有没有办法从c#中捕获它?您使用这些数据库异常的异常处理模式是什么?
有人可以帮助解释asp.net mvc中OnAuthorization和OnActionExecuting之间的区别吗?
我总是使用以下格式来使用transactionscope.
using(TransactionScope scope = new TransactionScope()){
....
}
有时我想将Transactionscope包装到一个新类,例如DbContext类,我想使用像这样的语句
dbContext.Begin(); ... dbContext.Submit();
似乎transactioncope类需要使用"using"语句来进行处理,我想知道是否还有使用"using".
我有一个问题,这里有一个示例
我有一个Model类:Stock
public class Stock{
//some properties, stock name, stock code;
public String StockName{
get,set
}
public String StockCode{
get,set
}
}
Run Code Online (Sandbox Code Playgroud)
我还有一个服务类StockService,它将从数据库加载数据并创建库存并设置属性值.
public class StockService:IStockService{
public Stock CreateStockByStockCode(string stockCode){
Stock stock = new Stock();
//load the data from db and set the stock's properties.
stock.StockName = ...
stock.StockCode = ...
}
}
Run Code Online (Sandbox Code Playgroud)
所以,我的问题,我有一个"Save()"方法,我应该放在哪里,
Option1:把它放在Stock类中,
public class Stock{
public void Save(){
//use the repository to save into db.
}
}
Run Code Online (Sandbox Code Playgroud)
Option2:把它放在服务类中
public class StockService:IStockService{
public void Save(Stock stock){
//use the …Run Code Online (Sandbox Code Playgroud)