我在Application_Start上生成一个线程,并希望记录异常.没有Context/HttpContext/HttpContext.Current,所以我怎么能让它登录?
目前,它没有捕获我的线程中的任何异常,如果我写,ErrorSignal.FromCurrentContext().Raise(ex);我得到一个关于上下文的错误不能为空.
也许我可以创建一个虚拟的HttpContext但不知何故我认为这不会很好.
-edit-我试过ErrorSignal.Get(new HttpApplication()).Raise(ex);,它似乎没有拿起那个例外.
这是我的第一个问题!
我有一个带有Properties文件夹的ASP.NET MVC 3项目,其中包含一些.resx文件,用于按语言(en/es)区分我的视图中的内容.我正在使用.Net 4在VS2010中工作.
当我将应用程序部署到服务器时,我发现没有发布resx文件,而不是它,我有一些.dll文件.
我已经设置构建动作Embedded resource,Do not copy输出目录,并PublicResXFileCodeGenerator在.resx文件属性自定义工具.
我希望在服务器上有.resx文件,并且无需重新编译或重新部署即可编辑它们.视图应该使用这些更改.
我怎样才能做到这一点?
谢谢你的帮助!!
我只是在南希弄湿了脚.我很高兴看到Wiki中的测试过程,但是当我尝试以下操作时,我无法通过测试来完成测试.
使用VS2010
Empty ASP.NET Web Application Project:Notify.AppInstall-Package Nancy.Hosting.AspNetClass Library项目:Notify.UnitTestsInstall-Package Nancy.TestingInstall-Package XUnit使用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) 我有一个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
我正在尝试定义泛型类
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类型参数设置约束,以便编译器知道它是引用或可空类型.
如何让编译器开心?
我有一个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,但需要一些帮助来确定如何解决这个问题...
我有一个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) 我正在使用Repeater内部的Ajax ModalPopupExtender,但由于一些javascript错误和其他东西,它没有显示.有人可以提供一个如何做到这一点的例子吗?
.net ×2
c# ×2
asp.net ×1
asp.net-ajax ×1
asp.net-mvc ×1
deployment ×1
elmah ×1
exception ×1
generics ×1
httpcontext ×1
javascript ×1
jquery ×1
nancy ×1
resx ×1
unit-testing ×1
wix ×1
wix3.7 ×1