我想用以下模式创建日志文件名称:
SBRF_20120820.log
SBRF_20120821.log
SBRF_20120822.log
SBRF_20120823.log
Run Code Online (Sandbox Code Playgroud)
换句话说,为每天创建一个新文件.所以,我创建了以下配置来做到这一点:
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender, log4net">
<file type="log4net.Util.PatternString" value="Logs/SBRF_%date{yyyyMMdd}.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level - %message%newline" />
</layout>
</appender>
<logger name="LogEmArquivo">
<level value="INFO" />
<appender-ref ref="FileAppender" />
</logger>
</log4net>
Run Code Online (Sandbox Code Playgroud)
例如,当我运行程序时,SBRF_20120823.log将创建该文件.但是在接下来的几天里,日志会继续写入SBRF_20120823.log文件,而创建的文件是:
SBRF_20120823.log.2012-08-23
SBRF_20120823.log.2012-08-24
SBRF_20120823.log.2012-08-25
SBRF_20120823.log.2012-08-26
Run Code Online (Sandbox Code Playgroud)
如果我明天运行该程序,将创建的文件是:
SBRF_20120824.log.2012-08-24
SBRF_20120824.log.2012-08-25
SBRF_20120824.log.2012-08-26
SBRF_20120824.log.2012-08-27
Run Code Online (Sandbox Code Playgroud)
为什么?
所以,我正在尝试使用以下方法重定向到我自己的AuthorizeAttribute中的错误页面:
filterContext.Result = new HttpStatusCodeResult(403);
Run Code Online (Sandbox Code Playgroud)
在我的web.config中,我最初尝试过:
<customErrors defaultRedirect="/Error" mode="On">
<error statusCode="403" redirect="/UnAuthorize" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
我试过后:
<customErrors defaultRedirect="/Shared/Error" mode="On">
<error statusCode="403" redirect="/Shared/UnAuthorize" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
然后,我创建一个ErrorController,我试过:
<customErrors defaultRedirect="/Shared/Error" mode="On">
<error statusCode="403" redirect="/Error/UnAuthorize" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
但是浏览器仍然显示403的默认错误页面,任何想法?
可能的解决方案:嗯,我看到了@bobek和@Robert Levy的答案,但我找到了另一种方式,更简单一些.
在我的AuthorizeAttribute中,我创建了一个名为RedirectOnErrorTo的属性,在我的AuthorizeAttribute的OnAuthorization方法中,我做了:
if (!string.IsNullOrEmpty(this.RedirectOnErrorTo))
{
filterContext.Result = new RedirectResult(this.RedirectOnErrorTo);
}
Run Code Online (Sandbox Code Playgroud)
所以,现在当我声明这个属性时,我选择了我想要重定向的路径.
它不像我想要只使用web.config那样自动化,但变得有用.你怎么看待家伙,这是解决这个问题的好方法?
我想使用泛型类在ObjectContext中创建一个通用的更新方法.我需要循环所有属性并基于我传递给我的通用更新方法的通用实体更新它们.更新方法:
public void Update(T entity)
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
var propertiesFromNewEntity = entity.GetType().GetProperties();
// I've a method that return a entity by Id, and all my entities inherits from
// a AbstractEntity that have a property Id.
var currentEntity = this.SelectById(entity.Id).FirstOrDefault();
if (currentEntity == null)
{
throw new ObjectNotFoundException("The entity was not found. Verify if the Id was passed properly.");
}
var propertiesFromCurrentEntity = currentEntity.GetType().GetProperties();
for (int i = 0; i < propertiesFromCurrentEntity.Length; i++) …Run Code Online (Sandbox Code Playgroud) 我收到一个WCF服务进行通信,因此,我需要在java或python中创建一个客户端,以获取此服务提供的信息,这是一个WCF TCP服务.可能吗?
如何在选择表的特定列时对行进行排序?
[...]
<tbody id="table_body">
<tr>
<td>A</td>
<td>10</td>
</tr>
<tr>
<td>B</td>
<td>8</td>
</tr>
<tr>
<td>T</td>
<td>12C</td>
</tr>
</tbody>
[...]
Run Code Online (Sandbox Code Playgroud)
剧本:
var fixHelper = function (e, ui) {
ui.children().each(function () {
$(this).width($(this).width());
});
return ui;
};
$(function () {
$("#table_body").sortable({
helper: fixHelper
}).disableSelection();
});
Run Code Online (Sandbox Code Playgroud)
所以,我希望只有在选择第一列时才对行进行排序.如果我选择第二列,则没有任何反应.可能吗?
编辑:
我试着Pow说:
$('#table_body td').mousedown(function (event) {
if ($(this).attr("class") != "add_story") {
event.stopImmediatePropagation();
}
});
Run Code Online (Sandbox Code Playgroud)
但是当我使用类"add_story"移动一行时,每一行都会被任何列移动.
我试图把div div_vagas_disponiveis和div_percentual_vagas并排放在div中心fieldset.我错过了什么?
我想知道我传递的类型是系统类型还是我创建的类型.我怎么知道这个?看:
// Obs: currentEntity can be any entity that i created
var currentProperties = currentEntity.GetType().GetProperties();
foreach (var property in currentProperties)
{
if (/* Verify here if the property is a system type */)
{
// Do what i want...
}
}
Run Code Online (Sandbox Code Playgroud)
验证这个的最佳方法是什么?
OBS:作为"系统类型"计算所有类型的核心标准库,在由Microsoft签署的程序集中,如:DateTime,String,Int32,Boolean(mscorlib.dll中的所有类型| System.dll)...
OBS2:我的实体不会继承那些"系统类型".
OBS3:我的实体可以是我创建的任何类型,因此我无法在比较中指定.
OBS4:我需要进行比较而不指定它是否等于String,Boolean ...
如何获取Enumerable.Except()返回的动态对象的元素数量?
看:
dynamic itensToRemove = Enumerable.Except(currentCollection, newCollection);
dynamic itensToAdd = Enumerable.Except(newCollection, currentCollection);
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做:
for (int i = 0; i < itensToRemove.Count(); i++)
Run Code Online (Sandbox Code Playgroud)
我得到了运行时错误'对象不包含Count的定义',所以,我怎么能得到元素的数量?
我有许多字符串,如"20120117"和"20120321".我需要使用以下格式的新字符串转换它:"2012/01/17"和"2012/03/21".那么,有一种方法可以做到这一点?
我尝试:
string dateString = string.format("{0:d", "20120321");
Run Code Online (Sandbox Code Playgroud)
和
string dateString = string.format("{0:yyyy/MM/dd", "20120321");
Run Code Online (Sandbox Code Playgroud)
和
string dateString = int.Parse("20120321").ToString("yyyy/MM/dd");
Run Code Online (Sandbox Code Playgroud)
在所有情况下,我都达不到目标.= /
所以,我可以这样做吗?
OBS:有一种方法可以做到这一点,而无需解析到日期时间?
我目前在一张大约90k行的表中.在执行清理并将所有行放入"历史表"之前,它将长大约1kk~5kk.所以,当我运行以下查询时(MyEntities是一个ObjectSet):
MyEntities.Skip(amount * page).Take(amount).ToList();
Run Code Online (Sandbox Code Playgroud)
此查询大约需要1.2秒...但是当我使用OrderBy和ThenBy运行以下查询时:
MyEntities.OrderBy(b => b.Day).ThenBy(b => b.InitialHour).Skip(amount * page).Take(amount).ToList();
Run Code Online (Sandbox Code Playgroud)
此查询大约需要5.7秒.有一种方法可以优化第二个查询吗?
我有两个类映射我的数据库的两个表:
public class Product
{
public int Id { get; set; }
public string Token { get; set; }
public string Name { get; set; }
public decimal Value { get; set; }
}
public class Ticket
{
public int Id { get; set; }
public string SerialNumber { get; set; }
public string ProductToken { get; set; }
public Product Product { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
由于某些域名原因,产品和故障单在逻辑上是链接的,换句话说,它们没有链接在可由EF映射的数据库关系中,它们将在我的应用程序中链接一个"必须"翻译成的linq查询SQL外左连接.从这里,我做了以下查询:
IQueryble<Ticket> query = from ts in context.Tickets
join ps in context.Products
on …Run Code Online (Sandbox Code Playgroud) 我需要每24小时运行一次代码.
所以,在Global.asax文件中:我尝试输入Application_Start但是当Session结束时,再次调用代码.我尝试输入一个静态变量,但我遇到了同样的问题.那么,在哪里可以将代码在我的网络应用程序中每24小时运行一次?
c# ×9
.net ×3
reflection ×3
linq ×2
asp.net-mvc ×1
collections ×1
css ×1
dynamic ×1
formatting ×1
generics ×1
html ×1
java ×1
jquery ×1
log4net ×1
optimization ×1
outer-join ×1
python ×1
string ×1
tcp ×1
wcf ×1