小编sco*_*coe的帖子

elmah:没有HttpContext的例外?

我在Application_Start上生成一个线程,并希望记录异常.没有Context/HttpContext/HttpContext.Current,所以我怎么能让它登录?

目前,它没有捕获我的线程中的任何异常,如果我写,ErrorSignal.FromCurrentContext().Raise(ex);我得到一个关于上下文的错误不能为空.

也许我可以创建一个虚拟的HttpContext但不知何故我认为这不会很好.

-edit-我试过ErrorSignal.Get(new HttpApplication()).Raise(ex);,它似乎没有拿起那个例外.

c# asp.net elmah exception httpcontext

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

在部署服务器中编辑ASP.NET MVC 3 resx文件而不重新编译

这是我的第一个问题!

我有一个带有Properties文件夹的ASP.NET MVC 3项目,其中包含一些.resx文件,用于按语言(en/es)区分我的视图中的内容.我正在使用.Net 4在VS2010中工作.

当我将应用程序部署到服务器时,我发现没有发布resx文件,而不是它,我有一些.dll文件.

我已经设置构建动作Embedded resource,Do not copy输出目录,并PublicResXFileCodeGenerator在.resx文件属性自定义工具.

我希望在服务器上有.resx文件,并且无需重新编译或重新部署即可编辑它们.视图应该使用这些更改.

我怎样才能做到这一点?

谢谢你的帮助!!

.net deployment resx visual-studio-2010 asp.net-mvc-3

8
推荐指数
1
解决办法
3078
查看次数

为什么`DefaultNancyBoostrapper`找不到我的NancyModule

我只是在南希弄湿了脚.我很高兴看到Wiki中的测试过程,但是当我尝试以下操作时,我无法通过测试来完成测试.

使用VS2010

  1. 创建Empty ASP.NET Web Application Project:Notify.App
  2. Install-Package Nancy.Hosting.AspNet
  3. 创建简单模块,如下所示:NotifyModule
  4. 创建Class Library项目:Notify.UnitTests
  5. Install-Package Nancy.Testing
  6. Install-Package XUnit
  7. 创建简单的第一个测试:BaseUrlSpec.cs

使用DefaultNancyBootstrapper测试失败了HttpStatusCode.NotFound.

如果我用以下内容替换bootstrapper定义:

var bootstrapper = new ConfigurableBootstrapper(
                          with => 
                             with.Module<NotifyModule>());
Run Code Online (Sandbox Code Playgroud)

然后测试通过. 我不明白为什么使用DefaultNancyBootstrapper的SDHP不起作用?我做错了什么让它破裂,还是我在理解中遗漏了细节?


NotifyModule

using Nancy;
public class NotifyModule : NancyModule {
    public NotifyModule() {
        Get["/"] = _ => HttpStatusCode.OK;
    }
}
Run Code Online (Sandbox Code Playgroud)

BaseUrlSpec

using Nancy;
using Nancy.Testing;
using Notify.App;
using Xunit;
public class BaseUrlSpec
{
    [Fact]
    public void ShouldRespondOk()
    {
        var bootstrapper = new …
Run Code Online (Sandbox Code Playgroud)

unit-testing nancy

8
推荐指数
1
解决办法
2243
查看次数

如何使用Unity DI加载具有依赖项的程序集,然后注册内部

我有一个asp.net mvc 3 Web应用程序,它具有实现系统相关EFcontexts和服务的插件程序集.

例如,我有一个看起来像下面这样的程序集:

System1Controller : IController // from System.Web.Mvc

ISystem1Service {
    IList<System1Type> GetOperation(string something);
}

System1Service : ISystem1Service 
{
    private ISystem1Entities context;
    public System1Service(ISystem1Entities context)
    {
        this.context = context;
    }
}

ISystem1Entities
{
    IDbSet<System1Type> Operations { get; set; }
}

System1Entities : DbContext, ISystem1Entities
Run Code Online (Sandbox Code Playgroud)

使用Unity Bootstrapper并调用Bootstrapper.Initialize()与以下BuildUnityContainer()实现一起使用

private static IUnityContainer BuildUnityContainer()
{
    var theContainer = new UnityContainer();
    var connectionString = ConfigurationManager.ConnectionStrings["WebAppConnectionString"];
    if (connectionString == null)
    {
        throw new ApplicationException("The ConnectionString is not defined.");
    }

    // register all your components …
Run Code Online (Sandbox Code Playgroud)

.net asp.net-mvc dependency-injection unity-container entity-framework-5

4
推荐指数
1
解决办法
2206
查看次数

如何定义通用约束以便我可以使用?合并运营商

我正在尝试定义泛型类

public abstract class RepositoryBase<TDatabase, TKey, T> : IRepository<TKey, T> 
    where T : class
    where TDatabase : IDatabase
{
    private TDatabase db;

    private readonly IDbSet<T> dbset;

    protected IDatabaseFactory<TDatabase> DatabaseFactory { get; private set; }

    protected TDatabase Database
    {
        get
        {
            return db ?? (db = DatabaseFactory.Get());
        }
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

在线return db ?? (db = DatabaseFactory.Get());,编译器抱怨"左'的操作数'??' 运算符应该是引用或可空类型"

我理解错误,但不知道如何对TDatabase类型参数设置约束,以便编译器知道它是引用或可空类型.

如何让编译器开心?

c# generics

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

如何在WiX安装程序脚本中实际使用LinkerBindInputPaths PropertyGroup

我有一个WiX安装程序脚本,它引用Visual Studio Solution文件夹根目录下的文件夹中的文件.在我的.wixproj中,我尝试设置Properties| Tool Setting| Linker

-b $(SolutionDir)\WixSource
Run Code Online (Sandbox Code Playgroud)

并获得一个错误,因为在$ SolutionDir变量的中间是一个带空格的文件夹.所以,我试过了

-b "$(SolutionDir)\WixSource"
Run Code Online (Sandbox Code Playgroud)

并抱怨错误地使用名称周围的引号,并且我应该在文件夹的末尾放置一个双反斜杠,其中包含空格. - 不能这样做,因为它在$(SolutionDir)宏内.

因此,根据对SO的建议,我试图使用LinkerBindInputPathsPropertyGroup,但文档严重缺乏对此属性的实际使用.

我正在运行WiX 3.7,不允许以下内容......

谷歌搜索时,我被告知需要进入以下<Package>元素:

<Package ...>
    <PropertyGroup>
        <LinkerBindInputPaths ???/>
    </PropertyGroup>
</Package>
Run Code Online (Sandbox Code Playgroud)

WiX文档@ http://wix.sourceforge.net/manual-wix3/msbuild_task_reference_light.htm

指定链接器用于查找所有文件的绑定器路径.这相当于light.exe中的-b开关.命名的BindPaths是通过在所提供的路径上添加2个或更多字符的存储桶名称,后跟等号("=")前缀来创建的.

由于没有通过谷歌搜索找到的例子,我无法破译"2个或更多字符的桶名称"是什么,或者是否有任何规则.

我希望能够指定类似的东西$(var.SolutionDir)\WixSource,但需要一些帮助来确定如何解决这个问题...

wix wix3.7

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

在发出ajax调用之前检查输入更改的干净方法是什么

我有一个ASP.NET MVC 3项目,其中包含一个带有5个文本输入框的表单,允许用户输入搜索条件.

目前,当用户从一个字段切换到下一个字段时,我有一个$('.watched').blur(ajaxSearch);发布我的ajaxSearch功能的功能,这可以正常工作,排序......

我的问题是,每次我通过字段选项卡,或者点击.searchResults结果div中显示的其中一个值时,每次调用ajaxSearch .

我在问题的最后把我当前的搜索javascript.

我想将值存储在文本框中,然后在发出另一个ajax调用之前检查它们是否有更改.

Psuedocode的想法

var oldvalues =  {}
function saveCurrentValues() {
    foreach( input box on the form ) {
       save the currentvalue of the input box into oldvalues['inputboxid']
    }
}

function isNewSearch() {
    foreach( input box on the form ) {
        if (oldvalues['inputbox.id'] !== input box value) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我不确定如何实现foreach和oldvalues赋值.一些javascript专家可以指出我在这个实现的正确方向.(我在下面的javascript中添加了注释行,我认为这个实现应该去实际工作.)

JavaScript的

function displayResults(data) {
    $('.searchResults').html(data);
}

function ajaxSearch() {
    // if …
Run Code Online (Sandbox Code Playgroud)

javascript jquery asp.net-mvc-3

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

带中继器的Ajax Modal Popup Extender

我正在使用Repeater内部的Ajax ModalPopupExtender,但由于一些javascript错误和其他东西,它没有显示.有人可以提供一个如何做到这一点的例子吗?

asp.net-ajax

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