小编Kyl*_*man的帖子

发生错误时发送电子邮件

目前我的应用程序使用log4net来记录错误,web.config为此如下:

<log4net>
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="../../logs/gateway_%date{yyyyMMdd}.log" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppenderOutput" />
    </root>
  </log4net>
Run Code Online (Sandbox Code Playgroud)

但是,客户端现在希望将每个错误通过电子邮件发送给他们.

最简单的方法是什么,你可以在web.config文件中做到吗?

c# email log4net

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

以编程方式将ScriptManager添加到页面?

我正在开发一个WebPart(它将在SharePoint环境中使用,虽然它不使用对象模型)我想要公开AJAX功能.由于环境的性质,直接向页面添加脚本管理器是不是一个选项,因此必须以编程方式添加.我试图将ScriptManager控件添加到我的webpart代码中的页面.

protected override void CreateChildControls()
{
    if (ScriptManager.GetCurrent(Page) == null)
    {
        ScriptManager sMgr = new ScriptManager();
        // Ensure the ScriptManager is the first control.
        Page.Form.Controls.AddAt(0, sMgr); 
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,执行此代码时,我收到以下错误消息:

"在DataBind,Init,Load,PreRender或Unload阶段,无法修改控件集合."

是否有另一种方法将ScriptManager从WebPart添加到页面中,或者我是否只需将ScriptManager添加到将使用WebPart的每个页面(或母版页)?

c# web-parts scriptmanager sharepoint-2007

28
推荐指数
4
解决办法
5万
查看次数

NuGet包管理器控制台默认项目下拉列表为空

我最近从MSDN升级到Visual Studio 2012 RTM Ultimate.我正在使用EF Code First Migrations在我的应用程序中构建我的数据库,最近我添加了一个新实体,并希望为它进行迁移.

为此,您需要在VS中打开"包管理控制台"窗口,然后键入add-migration "some name here".这将自上次更新以来对数据库进行任何更改.


问题

VS 2012 RC上未发生此问题

我遇到的问题是,尽管我的解决方案中有多个项目,但未填充程序包管理器控制台中的"默认项目"下拉列表.我在上面输入命令时使用的默认项目是错误的项目(我的迁移在另一个项目中).我这样做时收到以下错误:

在程序集"ProjectA"中未找到任何迁移配置类型.(在Visual Studio中,您可以使用程序包管理器控制台中的"启用 - 迁移"命令添加迁移配置).

Visual Studio 2012程序包管理器控制台


我试过的

我已经尝试将正确的项目(ProjectB)设置为启动项目,只是为了得到这个错误:

无法加载程序集"ProjectA".(如果在Visual Studio中使用Code First Migrations,如果解决方案的startUp项目未引用包含迁移的项目,则可能会发生这种情况.您可以更改解决方案的startUp项目或使用-StartUpProjectName参数.)


问题

如何手动指定要添加的项目迁移,或强制"默认项目"下拉列表填充?

nuget ef-migrations entity-framework-5 visual-studio-2012

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

在JQuery中,如何将单击的元素传递给onclick事件上调用的方法

我在页面上有几行:

<div class="save-button" onclick="Save()">Save</div>
Run Code Online (Sandbox Code Playgroud)

在我的Save()方法中,我想操纵被单击以调用Save()方法的div .我如何通过(我认为 $(this)),而不诉诸ID?

非常感谢!

jquery

18
推荐指数
2
解决办法
5万
查看次数

有没有办法在使用<Message ...>时打印换行符?

我想写,<Message Text="Line1\nLine2\nLine3" />但似乎没有工作.我该怎么替换?

(我在书中读到他们说打印@和%我们使用%40和%25,所以我想应该是新行的数字).

msbuild

17
推荐指数
2
解决办法
6927
查看次数

Android只使用列有电子邮件> android 2.0的联系人获取游标

我有以下代码来获取联系人 content provider

String[] columns = new String[] {
                ContactsContract.Contacts.DISPLAY_NAME,
                ContactsContract.Contacts._ID,
                ContactsContract.Contacts.PHOTO_ID };
        Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI,
                columns, null, null, null);
Run Code Online (Sandbox Code Playgroud)

我使用这个来获取他们的ID的特定联系人的电子邮件:

Cursor emails = getContentResolver().query(
                    ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                    null,
                    ContactsContract.CommonDataKinds.Email.CONTACT_ID
                            + " = " + contact.getContactId(), null, null);
Run Code Online (Sandbox Code Playgroud)

我当前的实现传递了游标中的每一行并获取其电子邮件并将它们存储在java对象的arrayList中.

我想知道是否有可能做的只是查询内容提供商并返回一个只有联系人的光标,其中包含列出了电子邮件地址的ids/name等.

这种方式有很长的等待时间来获取联系人列表.我正在使用此列表作为列表适配器.如果我只能得到有电子邮件的联系人我可以在我的列表中使用游标适配器.

这样的事情可能吗?我怎样才能加快这个过程?

android cursor contacts

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

在KnockoutJS中使用外部模板

可以像这样在KnockoutJS中使用外部模板吗?

<script type="text/html" id="a_template" src="templates/a_template.html">
</script>
Run Code Online (Sandbox Code Playgroud)

我尝试过这个解决方案,但没有让它运转起来.

templates external knockout.js knockout-templating

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

有什么理由不相信ASP.NET AntiForgeryToken?

我知道Stack Exchange站点不使用内置的ASP.NET MVC @Html.AntiForgeryToken()来防止XSRF/CSRF攻击.而不是创建一个名为隐藏输入的__RequestVerificationToken一个很长的基础上,web.config中的部分的machineKey值,堆栈交换方法创建一个名为输入fkeyMUCH更简洁的价值.这显然是一个Guid,根据Google Code上Stack Exchange Data Explorer项目的证据,这个值与每个用户相关联,在您登录或注销之前保持相当稳定.

此外,Stack Exchange值在页面上是常量,并且可供客户端脚本使用,因此用于投票的Ajax帖子以及类似的东西也使用该令牌.相比之下

那么为什么Stack Exchange会向自己的鼓手迈进呢?

  • 有理由不相信AntiForgeryToken吗?
  • AntiForgeryToken是否有一些Stack Exchange团队不愿意接受的限制?如果是这样他们是什么?
  • 或者当Stack Overflow启动时,AntiForgeryToken可能不在(它开始在MVC Futures项目中生活),如果他们今天从头开始做它们会使用AntiForgeryToken吗?

我无法在Stack Exchange团队中找到Jeff或其他人的任何博客文章,以解释SE网络上XSRF预防策略背后的指导原则.如果其中一个人可以写一篇文章,那将是非常好的,当然假设它可以在不产生漏洞的情况下以一般术语完成.对于我们这些想要使我们的网站安全的人来说,这将是非常有价值的信息,但是只是盲目地信任微软为我们做这件事并不完全舒服.

asp.net-mvc csrf antiforgerytoken asp.net-mvc-3

15
推荐指数
1
解决办法
2401
查看次数

ASP.NET MVC - 如何使用jquery.validate.unobtrusive lib防止双击提交?

我需要避免双击提交行为.我正在使用不显眼的库进行客户端验证.我有以下代码来避免双重clic:

jQuery.fn.preventDoubleSubmit = function () {
         var alreadySubmitted = false;
         return jQuery(this).submit(function () {

             if (alreadySubmitted)
                 return false;
             else {
                 alreadySubmitted = true;
             }
         });
     };

     jQuery('form').preventDoubleSubmit();
Run Code Online (Sandbox Code Playgroud)

不幸的是,如果我的表单有一些可验证的字段(例如,必填字段),上面的代码仍然被触发,因此,即使我更正了表单上的任何错误,我也无法再次提交.

验证成功完成后,如何触发双击代码?

unobtrusive double-submit-prevention asp.net-mvc-3

14
推荐指数
3
解决办法
2万
查看次数

从beta升级后的Autofac/MVC4/WebApi(RC)依赖注入问题

var resolver = new AutofacWebApiDependencyResolver(container);
configuration.ServiceResolver.SetResolver(resolver);
Run Code Online (Sandbox Code Playgroud)

更新到ASP.NET MVC4(RC)后,我收到以下错误:

'System.Web.Http.HttpConfiguration'不包含'ServiceResolver'的定义,也没有接受第一个类型为'System.Web.Http.HttpConfiguration'的扩展方法'ServiceResolver'(你是否缺少using指令)或汇编参考?)

我在阅读这篇文章(http://www.asp.net/web-api/overview/extensibility/using-the-web-api-dependency-resolver)后发现这些界面已经改变,但我不知道如何申请这改变了我如何使用Autofac.

我是否需要等待Autofac的新版本,或者是否有另外一种方法可以解决这个问题.

autofac asp.net-mvc-4

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