小编gle*_*ron的帖子

Internet Explorer上的"第0行堆栈溢出"

我发现这不是一个在可搜索性方面询问这个问题的理想场所,但我有一个页面,当我在Internet Explorer中查看它时,其JavaScript代码会引发"第0行堆栈溢出"错误.

问题很明显不在第0行,而是在我正在写入文档的东西列表中的某个地方.在Firefox中一切正常,所以我没有Firebug和朋友的乐趣来协助排除故障.

这有什么标准原因吗?我猜这可能是一个Internet Explorer 7漏洞或者一些相当模糊的东西,我的Google-fu目前给我带来了一些乐趣.我之前可以找到很多遇到这种情况的人,但我似乎无法找到他们是如何解决它的.

javascript error-handling internet-explorer

38
推荐指数
4
解决办法
25万
查看次数

NUnit在包含数组时无法识别TestCase

这是非常简单但令人烦恼的行为,我遇到了NUnit:

我有一些像这样的测试:

[Test]
[TestCase( 1, 2, "hello" )]
[TestCase( 3, 5, "goodbye" )]
public void MyClass_MyMethod( int a, int b, string c )
{
    Assert.IsTrue( a < b );
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,在ReSharper NUnit窗格中,我可以看到每个TestCase在结果中获得自己的响应.

我有第二个看起来像这样的TestCase:

[Test]
[TestCase( 1, 2, new long[] { 100, 200 })]
[TestCase( 5, 3, new long[] { 300, 500 })]
public void MyClass_MyOtherMethod( long a, long b, long[] bunchOfNumbers )
{
   Assert.IsTrue( a < b );
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我看到了这个:

一个或多个子测试有错误Exception没有堆栈跟踪

public void MyClass_MyOtherMethod(5,3,System.Int64 [])失败

与我的其他测试不同的是,它将每个TestCase抽取为测试列表上的一个单独的复选框,而这一个没有显示,我没有详细信息,直到我在调试器中运行它出现了什么问题以及在哪里.我有点担心这个测试在构建机器上的表现.有谁知道发生了什么,为什么?

c# nunit unit-testing testcase

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

为什么在运行部分回发的ASP.Net页面时,VS2010调试器中的脚本块会不断增长?

在使用包含各种经过验证的部分回发控件的UpdatePanel的ASP.Net页面上,Visual Studio 2010脚本调试器窗口开始显示不断增长的"脚本块"条目列表,这些条目似乎是匿名的,我们自动生成的函数与重新加载面板上的控件.似乎以前更新面板的旧脚本块没有被处理,所以列表只是继续增长,减慢页面和调试器的速度,直到IE关闭,因此可能需要很长时间才能删除数百个块出现了.

这是页面运行方式或调试器工件的问题吗?比较调试和未调试页面的性能似乎是后者,但知道发生了什么以及为什么会很好.

javascript asp.net debugging internet-explorer visual-studio-2010

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

Cordova android构建立即失败[错误:生成EACCES]

我刚刚开始使用Cordova(PhoneGap)并尝试用它构建我的第一个项目,但是我遇到了编译步骤的问题 - 当我尝试构建时(在追踪问题时我打破了这个build步骤)prepare并且compile前者在我知道的情况下工作得很好)我看到了这个:

~/Projects/MyProject$ cordova compile android
Compiling app on platform "android" via command "/media/glenatron/local disk/Projects/Cordova/MyProject/platforms/android/cordova/build" 
{ [Error: spawn EACCES] code: 'EACCES', errno: 'EACCES', syscall: 'spawn' }
Run Code Online (Sandbox Code Playgroud)

现在从我可以告诉这是一个权限问题,但没有Node或Cordova经验,但我不知道如何解决它.它看起来好像正在尝试产生另一个进程 - 也许是Android SDK? - 它失败了.

有没有办法我可以让Node或Cordova给我更多关于发生了什么的信息,或者是否有某个日志文件可以帮助我找出问题所在?

编辑:我意识到cordova有一个--verbose开关,当我激活它时,我得到上面的输出另外几行......

Error: spawn EACCES
    at errnoException (child_process.js:980:11)
    at Process.ChildProcess._handle.onexit (child_process.js:771:34)
Run Code Online (Sandbox Code Playgroud)

不幸的是,他们似乎并没有实际上给更多的信息,像过程中它无法启动.

android node.js cordova

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

如何最好地在.NET中使用XPath和非常大的XML文件?

我需要在C#中对相当大的XML文件(这里可能超过一千兆字节)进行一些处理,包括执行一些复杂的xpath查询.我遇到的问题是我通常通过System.XML库执行此操作的标准方法是在将任何内容添加到内存之前将整个文件加载到内存中,这会导致此大小的文件出现内存问题.

我只需要阅读它们并查询其中包含的数据就不需要更新文件.一些XPath查询非常复杂,并且涉及多个级别的父子类型关系 - 我不确定这是否会影响使用流式读取器的能力,而不是将数据作为块加载到内存中.

我可以看到使其工作的一种方法是使用基于流的方法执行简单分析,并且可能将XPath语句包装到XSLT转换中,之后我可以在文件中运行,尽管看起来有点复杂.

或者我知道XPath查询中有一些元素不能运行,所以我想我可以根据它的原始树结构将文档分解为一系列较小的片段,这可能足够小,可以在内存中处理造成太大的破坏.

我试图在这里解释我的目标,所以如果我在一般方法上咆哮完全错误的树我相信大家可以让我正确...

.net c# xml xpath large-files

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

为什么hasOwnProperty无法识别对象原型上的函数?

我知道hasOwnPropertyJavaScript 中的方法只用于识别当前类型的属性,但是原型链中有一些东西让我感到困惑.

让我们假设我定义了一个名为Bob的类型,并以两种不同的方式为我的Bob类型分配两个子函数:

function Bob()
{
    this.name="Bob"; 
    this.sayGoodbye=function()
    {
        console.log("goodbye");   
    }
}

Bob.prototype.sayHello= function()
{
    console.log("hello");   
}
Run Code Online (Sandbox Code Playgroud)

现在,除了可以访问闭包范围之外,在sayGoodbye我看来,属于Bob该类的两个函数应该或多或少相等.但是,当我查找它们时,hasOwnProperty就JavaScript而言它们并不相同:

var myBob = new Bob();
console.log( myBob.name ); // Bob, obviously 
console.log( myBob.hasOwnProperty("sayHello"));  // false
console.log( myBob.hasOwnProperty("sayGoodbye")); // true
console.log( "sayHello" in myBob ); // true
Run Code Online (Sandbox Code Playgroud)

在范围方面发生了什么?如果没有和它连接Bob的属性,我无法创建该类型的实例,那么为什么原型方法是关注的二等公民呢?是一种独立于类型存在的类型,从哪个类继承所有东西?sayHello()sayGoodbye()hasOwnPropertyBob.prototypeBobBob

javascript prototype hasownproperty

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

实体框架4每个层次结构表 - 如何定义儿童的导航属性?

我目前使用Table Per Type(TPT)实现了Entity Framework 4.0模型,但是存在一些性能问题(许多LOJ/CASE语句),以及两个特定域区域之间的问题映射(多个到 - 许多).

我决定尝试TPH.

我有一个名为" Location " 的实体,它是抽象的,是所有其他实体的基础.

然后我有" 国家 "," 城市 "," "," 街道 "等,这些都来自位置.

" LocationType "是判别者.

该部分工作正常,但我在尝试为派生类型定义导航属性时遇到问题.

例如," "有一个" 国家 ",所以我应该能够这样做:

var state = _ctx.Locations.OfType<State>().Include("Country").First();
var countryForState = state.Country;
Run Code Online (Sandbox Code Playgroud)

但这需要在"州"派生实体上称为"国家"的导航属性.我该怎么做呢?当我从数据库生成模型时,我有一个表,所有FK指向同一个表中的记录:

替代文字

(注意:我在DB中手动创建了这些FK).

但是FK被定位为" 位置 "实体上的导航,那么如何将这些导航属性移动到派生实体?我不能复制+粘贴导航,我不能"创建新的导航属性",因为它不会让我定义开始/结束角色.

我们如何做到这一点?

如果我们可以先建立模型,或者我们必须从数据库开始,修复模型然后重新生成数据库,那么TPH也不清楚.我还没有在互联网上找到一个关于如何使用TPH定义儿童导航的好例子.

注意:我不想先执行代码.我目前的解决方案是TPT与EDMX,以及纯POCO,我希望不影响域模型/存储库(如果可能),只需更新EF模型/数据库.

编辑

仍然没有解决方案 - 但是我试图做模型优先,并做Add - > New Association,这实际上允许我向派生实体添加导航.但是当我尝试"从模型生成数据库"时,它仍然尝试为"Location_Street","Location_Country"等创建表.这几乎就像TPH不能先完成模型.

编辑

这是我目前的型号:

替代文字

我目前得到的验证错误:

错误1错误3002:从第359行开始映射片段时出现问题:潜在的运行时违反表位置的键(Locations.LocationId):列(Locations.LocationId)在概念方面映射到EntitySet NeighbourhoodZipCode的属性(NeighbourhoodZipCode.Neighbourhood.LocationId)但它们并不构成EntitySet的关键属性(NeighbourhoodZipCode.Neighbourhood.LocationId,NeighbourhoodZipCode.ZipCode.LocationId).

只是想我会继续编辑这个问题,编辑关于我目前所处的位置.我开始怀疑具有自引用FK的TPH是否可行.

编辑

所以我想出了上面的错误,那是因为我错过了Neighborhood-ZipCode的连接表多对多.

添加连接表(并将导航映射到该表)解决了上述错误.

但现在我得到这个错误:

错误3032:从第373行,第382行开始映射片段时出现问题:条件成员的Locations.StateLocationId'具有重复的条件值.

如果我看一下CSDL,这里是"CountyState"的关联映射(一个州有很多县,一个县有一个州):

<AssociationSetMapping Name="CountyState" TypeName="Locations.CountyState" StoreEntitySet="Locations">
   <EndProperty Name="State"> …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework sql-server-2008 entity-framework-4 table-per-hierarchy

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

为什么我从引用自身的订阅者那里收到“初始化前无法访问‘变量’”错误?

在我的 Angular 8 应用程序中,我有一个订阅服务并等待服务已加载的通知的组件,如下所示:

constructor(public contentService: ContractService) {
    let self = this;
    let sub = contentService.loaded.subscribe(function(loaded) {
        if (loaded) {
            self.loading = false;
            if (sub) {
                sub.unsubscribe();
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

这在大多数情况下都能正常工作,但有时我会看到以下错误消息:

ERROR ReferenceError: Cannot access 'sub' before initialization
    at SafeSubscriber._next (abstract-content.component.ts:51)
    at SafeSubscriber.__tryOrUnsub (Subscriber.js:185)
    at SafeSubscriber.next (Subscriber.js:124)
    at Subscriber._next (Subscriber.js:72)
    at Subscriber.next (Subscriber.js:49)
    at BehaviorSubject._subscribe (BehaviorSubject.js:14)
    at BehaviorSubject._trySubscribe (Observable.js:42)
    at BehaviorSubject._trySubscribe (Subject.js:81)
    at BehaviorSubject.subscribe (Observable.js:28)
    at Observable._subscribe (Observable.js:76)
Run Code Online (Sandbox Code Playgroud)

正如您可能从名称中abstract-content-component了解到的那样,这是一个具有多个实现的父类,因此它是从子类调用的,但这实际上是一个空壳,没有自己的逻辑,我正在使用它来轻松切换模板。

错误消息对我来说似乎毫无意义(在这种情况下,第 51 行是if(sub)我添加的检查,因为我在之后的行中看到了相同的错误),因为如果我们在自己的事件处理程序中,订阅怎么可能不存在?我在其他地方成功使用了这个模式,为什么这里有问题?

typescript angular angular8

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

在潜在客户中寻找警告标志?

我已经看到了一些关于如何采访潜在员工和雇主的问题,但这是我过去遇到的相当重要的事情,我相信其他很多用户也会这样:

如果您经营一家小型开发公司,咨询公司或自由职业者,您在潜在客户中寻找的警告信号是什么?必须有一些指标,客户需要大量的监督,需要你的大量时间,也许需要你相应地调整你的收费模式 - 这些是你的经验,你如何处理它们?

哪些红旗表明客户根本不会遇到太麻烦?你在哪里设定这个决定的门槛?

project-planning

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

将作业添加到特定用户的PrintQueue

我有一个应用程序,根据用户请求执行一些中央文件生成.我希望能够用它做一次创建的文件是将它们放置在用户的打印队列(在这个组织有一个中央打印队列,以便用户负责打印自己的文档),这样他们就可以有用户准备好后打印出来.

通过使用System.Printing.net中的程序集,我可以将作业添加到我自己的打印队列中,所以我听起来就是那个部分.我的打印代码如下所示:

private void RunPrintJob( string myFileName )
    {
        PrintServer ps = new PrintServer(@"\\printatron");
        PrintQueue queue = new PrintQueue(ps, "psandqueues");
        try
        {
            PrintSystemJobInfo pj = queue.AddJob(myFileName);
            Stream myStream = pj.JobStream;
            Byte[] myByteBuffer = GenerateBufferFromFile(myFileName);                myStream.Write(myByteBuffer, 0, myByteBuffer.Length);
            myStream.Close();
        }
        catch (Exception ed)
        {
            Debug.WriteLine(ed.Message);
            if (ed.InnerException != null)
            {
                Debug.WriteLine(" -> " + ed.InnerException);
            }
            result = false;
        }
        queue.Commit();
    }
Run Code Online (Sandbox Code Playgroud)

所以我有我的集中创建的文档,我知道哪个用户负责他们的创建,我可以将它们发送到打印机.

我现在需要的是一种将创建它们的用户设置为打印机的方法.有没有办法通过打印队列执行此操作?我知道它可以从PrintSystemJobInfo.Submitter属性读取,但这是只读的.如果没有,我是否必须通过模拟来实现,如果是这样,在后一种情况下,我可以做些什么来避免必须存储一堆用户密码并且每次用户更改密码时软件都会失败?这似乎是一种非常笨拙的操作方式,但由于此活动目前尚未以交互方式执行,我还有其他选择吗?

c# printing impersonation

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