小编Mar*_*ler的帖子

String.GetHashCode()返回不同的值

为什么GetHashCode()为同一个字符串返回不同的值?我无法描述如何复制这个,但相信这不是一个恶作剧,以下两行来自我的观察窗口,分别是两次:

"DDD.Events.Application.ApplicationReferenceCreated".GetHashCode() -1386151123 int
"DDD.Events.Application.ApplicationReferenceCreated".GetHashCode() 1858139950 int
Run Code Online (Sandbox Code Playgroud)

怎么会发生这种情况?

我不知道这是否有帮助,但我在VS 2010中运行.NET 4.0并且我正在调试NServiceBus应用程序.

更新:

如果你想知道我最后做了什么,看看这个线程:你能在x64模式下运行时生成x86哈希值吗?

c# string .net-4.0 gethashcode

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

在Cordova项目上运行Karma时执行0 0 ERROR

我有一个apache cordova项目设置,我试图第一次使用Karma.我这样开始了这个项目:

karma start test/karma.conf.js --verbose
Run Code Online (Sandbox Code Playgroud)

但我得到的只是:

INFO [karma]: Karma v0.12.36 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
WARN [web-server]: 404: /favicon.ico
INFO [Chrome 43.0.2357 (Windows 8.1 0.0.0)]: Connected on socket 0_IDnS6qvPg4OhGd7oq4 with id 66015767
Chrome 43.0.2357 (Windows 8.1 0.0.0): Executed 0 of 0 ERROR (0.002 secs / 0 secs)
Run Code Online (Sandbox Code Playgroud)

我已经仔细检查了我为针对业力配置requirejs的文档做了什么.

karma.conf.js

module.exports = function(config) {
  config.set({
    basePath: '..',
    frameworks: ['jasmine', 'requirejs'],
    files: [
      {pattern: 'www/lib/ionic/js/*.min.js', included: false},
      {pattern: 'www/lib/ionic/js/angular/*.min.js', included: false},
      {pattern: 'www/lib/ionic/js/angular-ui/*.min.js', included: false}, …
Run Code Online (Sandbox Code Playgroud)

requirejs cordova karma-runner

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

ASP.NET WebApi IExceptionLogger不捕获异常

我正在尝试设置如下所述的全局异常处理程序:Web API全局错误处理.我设置了一个在控制器构造函数中抛出异常的情况.但是我的异常没有被记录.相反,WebApi只是将异常和完整堆栈跟踪作为JSON消息返回给调用客户端.

我不知道它是否重要,但我的控制器操作正在使用async/await,如下所示:

[HttpGet, Route("GetLocationNames")]
public async Task<IEnumerable<String>> Get()
{
    return await adapter.GetLocationNames();
}
Run Code Online (Sandbox Code Playgroud)

我有以下实现:

using log4net;
using System.Threading.Tasks;
using System.Web.Http.ExceptionHandling;

namespace warehouse.management.api
{
    public class Log4NetExceptionLogger : ExceptionLogger
    {
        private ILog log = LogManager.GetLogger(typeof(Log4NetExceptionLogger));

        public async override Task LogAsync(ExceptionLoggerContext context, System.Threading.CancellationToken cancellationToken)
        {
            log.Error("An unhandled exception occurred.", context.Exception);
            await base.LogAsync(context, cancellationToken);
        }

        public override void Log(ExceptionLoggerContext context)
        {
            log.Error("An unhandled exception occurred.", context.Exception);
            base.Log(context);
        }

        public override bool ShouldLog(ExceptionLoggerContext context)
        {
            return base.ShouldLog(context);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在这样注册: …

c# asp.net asp.net-web-api

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

为单元测试创​​建模拟数据

我认为自己仍然是TDD场景的新手.但是发现无论我使用哪种方法(模拟框架或存根我自己的对象),我发现我必须编写大量代码来创建模拟数据.我喜欢加载对象以创建内存数据库的想法.但我不喜欢的是用大量代码来混乱我的测试,其唯一目的是创建模拟数据.当数据需要考虑所有不同的情况时尤其如此.

我想要一些更好的方法来做这个建议.

在我看来,我应该能够将数据从一些数据存储加载到已知状态,然后我可以使用在执行每个测试方法之前在测试设置/初始化中加载的状态的快照.这将满足适当的测试实践,同时提供便利,让我专注于编写测试而不是编写代码来"手动"创建测试数据.

tdd mocking

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

部署Azure项目时的依赖性警告(WAT150)

我有一个MVC3项目,我已迁移到Azure Web角色,它工作正常.但有一件事真的让我烦恼:当我发布/打包项目进行部署时,我得到了这个错误:

警告WAT150:项目''依赖于以下程序集C:\ Program Files(x86)\ Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll.此程序集不在包中.要确保角色启动,请将此程序集添加为对项目的引用,并将Copy Local属性设置为true.

我在谷歌上找到的就是如何添加依赖项.但是,我删除了它,我无法找到这种依赖关系被提取的地方.它不会引起任何问题,除了刺激我的神经,如黑板上的指甲.如果有人能指出我正确的方向,我将不胜感激.

.net azure visual-studio-2010

9
推荐指数
2
解决办法
3177
查看次数

包装NServiceBus.IHandleMessages

我被要求开发将作为通用总线不采取行动一层任何以NServiceBus直接引用.到目前为止,由于对不显眼的消息的支持并不是太难.除了现在我已被要求提供我们自己的IHandleMessages定义,并找到一种在连线过程中映射它的方法.所以我在想这样的事情:

    public class MessageHandlerAdapter<T> : IHandleMessages<T>
{
    IUnityContainer container;

    public MessageHandlerAdapter(IUnityContainer container)
    {
        this.container = container;
    }

    #region IMessageHandler<T> Members

    public void Handle(T message)
    {
        var handler = container.Resolve<IHandle<T>>();
        handler.Handle(message);
    }

    #endregion
}
Run Code Online (Sandbox Code Playgroud)

IHandle将成为我们自己的定义(顺便说一下,它与IHandleMessages完全相同).我希望能够反映AppDomain并找到所有实现IHandle的类并将它们注册到容器中,然后注册一个具有相同类型T的MessageHandlerAdapter.

我的问题是我已经使用NServiceBus将近2年了,我不记得在NSB管道中将这种功能挂钩到哪里.

nservicebus3

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

DynamoDB Local:Streams.getRecords返回TrimmedDataAccessException

我正在使用DynamoDB本地从nodejs(Javascript SDK)运行集成测试.当我调用getRecords时,我得到"TrimmedDataAccessException".如果我在AWS(非本地)中针对DynamoDB运行相同的代码,它可以正常工作.这是步骤:

  • 运行DynamoDB
  • createTable"EventStore"
  • createTable"音乐"
  • describeTable"EventStore"(获取LatestStreamArn")
  • describeStream作为"LatestStreamArn"返回(获取ShardId)
  • 带有ShardIteratorType"LATEST"的getShardIterator
  • 将记录放到"音乐"表中
  • 将记录放到"EventStore"表中
  • 来自"EventStore"流的getRecords

"put"命令的顺序很重要.如果我把"EventStore"放在首先一切正常,但是当我首先使用"Music"时它会失败.如果我更改顺序,我的应用程序逻辑将是错误的,因此只更改顺序对我来说是一个问题.

运行DynamoDB

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb -dbPath /data
Run Code Online (Sandbox Code Playgroud)

CREATETABLE

{
    TableName: "EventStore",
    KeySchema: [
        { AttributeName: "EntityId", KeyType: "HASH" },
        { AttributeName: "Version", KeyType: "RANGE" }
    ],
    AttributeDefinitions: [
        { AttributeName: "EntityId", AttributeType: "S" },
        { AttributeName: "Version", AttributeType: "N" }
    ],
    ProvisionedThroughput: {
        ReadCapacityUnits: 10,
        WriteCapacityUnits: 10
    },
    StreamSpecification: {
        StreamEnabled: true,
        StreamViewType: "NEW_IMAGE"
    }
}
Run Code Online (Sandbox Code Playgroud)

createTable(响应)

{
  "TableDescription": {
    "AttributeDefinitions": [
      {
        "AttributeName": "EntityId",
        "AttributeType": "S" …
Run Code Online (Sandbox Code Playgroud)

dynamo-local amazon-dynamodb-streams

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

为什么 DataFrame 中缺少分区键列

我有一个工作,它加载一个 DataFrame 对象,然后使用 DataFramepartitionBy方法将数据保存为镶木地板格式。然后我发布创建的路径,以便后续作业可以使用输出。输出中的路径如下所示:

/ptest/_SUCCESS
/ptest/id=0
/ptest/id=0/part-00000-942fb247-1fe4-4147-a41a-bc688f932862.snappy.parquet
/ptest/id=0/part-00001-942fb247-1fe4-4147-a41a-bc688f932862.snappy.parquet
/ptest/id=0/part-00002-942fb247-1fe4-4147-a41a-bc688f932862.snappy.parquet
/ptest/id=1
/ptest/id=1/part-00003-942fb247-1fe4-4147-a41a-bc688f932862.snappy.parquet
/ptest/id=1/part-00004-942fb247-1fe4-4147-a41a-bc688f932862.snappy.parquet
/ptest/id=1/part-00005-942fb247-1fe4-4147-a41a-bc688f932862.snappy.parquet
/ptest/id=3
/ptest/id=3/part-00006-942fb247-1fe4-4147-a41a-bc688f932862.snappy.parquet
/ptest/id=3/part-00007-942fb247-1fe4-4147-a41a-bc688f932862.snappy.parquet
Run Code Online (Sandbox Code Playgroud)

当我收到新数据时,它会附加到数据集。路径已发布,因此依赖于数据的作业可以只处理新数据。

下面是代码的一个简化示例:

>>> rdd = sc.parallelize([(0,1,"A"), (0,1,"B"), (0,2,"C"), (1,2,"D"), (1,10,"E"), (1,20,"F"), (3,18,"G"), (3,18,"H"), (3,18,"I")])
>>> df = sqlContext.createDataFrame(rdd, ["id", "score","letter"])
>>> df.show()
+---+-----+------+
| id|score|letter|
+---+-----+------+
|  0|    1|     A|
|  0|    1|     B|
|  0|    2|     C|
|  1|    2|     D|
|  1|   10|     E|
|  1|   20|     F|
|  3|   18|     G|
|  3|   18|     H|
|  3|   18|     I| …
Run Code Online (Sandbox Code Playgroud)

python apache-spark pyspark

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

您在哪里将加密密钥放在面向公众的服务器上?

我在我的Web应用程序和服务之间使用NServiceBus和MSMQ,我需要能够加密消息有效负载,这样如果消息在Web服务器上本地排队(服务主机已关闭),则无法查看敏感数据.

由于Web服务器是面向公众的,因此我不仅需要加密可能被序列化到磁盘的数据,而且我也无法将加密密钥存储在Web服务器上.

我已经考虑使用DPAPI存储密钥,但由于密钥将存储在主机上,我还不知道是否违反了要求.我考虑的另一个选项是,当Web应用程序启动时,它可以从服务请求密钥并在应用程序池的生命周期内将其保存在内存中.

我以前没有必要处理这种级别的加密要求,并希望了解其他人正在做什么,并获得有关上述想法的一些反馈.

c# security encryption nservicebus

6
推荐指数
2
解决办法
596
查看次数

DynamoDB UpdateException:类型不匹配的属性以进行更新

我在DynamoDB中有以下记录:

    {
        "BusinessNo": {
            "N": "12345"
        },
        "Metadata": {
            "M": {
                "MimeType": {
                    "S": "audio/wav"
                },
                "FileName": {
                    "S": "00032329.wav"
                },
                "CustomC": {
                    "S": "baz"
                },
                "CustomA": {
                    "S": "foo"
                },
                "CustomB": {
                    "S": "bar"
                },
                "Size": {
                    "S": "3992020323"
                }
            }
        },
        "Id": {
            "S": "f0de8af3-a7f5-4d9b-ad5d-b2f150abd15e"
        },
        "Revision": {
            "N": "2"
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我使用来自nodejs AWS SDK 的update方法提交以下内容时DynamoDB.DocumentClient(我也尝试add代替set):

{
  "TableName": "Storage_FileMetadata",
  "Key": {
    "Id": "f0de8af3-a7f5-4d9b-ad5d-b2f150abd15e",
    "BusinessNo": "12345"
  },
  "ExpressionAttributeNames": {
    "#m": "Metadata", …
Run Code Online (Sandbox Code Playgroud)

amazon-dynamodb aws-sdk

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