小编Chr*_*xon的帖子

.NET 4.5 WebSockets与SignalR

我已经看到了用于asp.net MVC聊天应用程序的signalR vs html5 websockets,但它没有100%回答我的问题,因为它基于HTML5 WebSockets,微软可能已经在.NET 4.5中使用他们的WebSocket对象进行了扩展.

我想知道WebSocket功能是否确实与SignalR相同,并且在WebSockets不可用时又回退到长轮询?当然,微软在采用这种技术的方法中会采用与SignalR相同的技术吗?

编辑:

对于其他任何想知道这个的人,我发现这个评论最有助于理解这个场景以及为什么我会使用SignalR:

嗯,他们不是真的.到目前为止,IIS和ASP.NET没有内置任何受支持的WebSockets,因此SignalR项目必须自己构建它.现在微软正在提供管道,SignalR可以轻松切换到使用微软的实现,无论是自己的还是替代.SignalR是一个实现细节的抽象,WebScockets类是实现细节

asp.net websocket signalr

54
推荐指数
3
解决办法
4万
查看次数

JSON.stringify一个具有Knockout JS变量的对象

目前的情况:

function Employee(data) {
var self = this;

// variables
this.Forename = ko.observable(data.Forename);
this.Surname = ko.observable(data.Surname);

this.Save = function () {
    var obj = JSON.stringify(self); // Without ko.observables, this works fine. self() doesn't work obviously.
    console.log(obj);
};
}
Run Code Online (Sandbox Code Playgroud)

我认为我要做的是非常简单,获取所有可观察的值而不经过它们中的每一个,并使用stringify函数创建一个JSON字符串.没有可观察量这很容易做到,有没有一种简单的方法可以用它们做到?

javascript json knockout.js

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

使用"FindBySubjectName"找不到X.509证书

经过与WCF安全的残酷斗争后,我想我现在处于最后阶段,可以看到光明.

我已经在我的服务器上安装了客户端证书,现在,按照建议,它现在位于证书库的"受信任的人"文件夹中.

但是,当我尝试阅读证书申请 - >服务时,我收到此错误:

使用以下搜索条件找不到X.509证书:StoreName'My',StoreLocation'CurrentUser',FindType'FindBySubjectName',FindValue'Forename Surname'.

使用"Forename姓氏"作为我的证书的"已发布"部分.在我看过的所有教程中,这只是一个字; 这是问题吗?我从我的CA收到了我的证书,上面写着这两个字,带有空格.

任何人都遇到过这种情况,有什么我公然做错了吗?

更新,证书可以在这里看到:

在此输入图像描述

更新:

它变得更加奇怪:

我在我的Web服务器上安装了Visual Studio,并使用以下代码通过Thumbprint获取证书:

var store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindByThumbprint, "71995159BFF803D25BFB691DEF7AF625D4EE6DFB", false);
Run Code Online (Sandbox Code Playgroud)

这实际上是RETURNS一个有效的结果.当我将此信息放入我的服务/客户端的web.config时,我仍然得到错误.

ssl wcf certificate wcf-security x509certificate

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

覆盖代码生成的DbContext构造函数

我确定我在某个阶段之前已经完成了这个,但我现在还不清楚怎么做!我的情景:

// This is generated from EDMX
public partial class HOLDbEntities : DbContext
{
    public HOLDbEntities()
            : base("name=HOLDbEntities")
        {
        }
}
Run Code Online (Sandbox Code Playgroud)

现在,我希望这个连接字符串很容易更改(我想从HOLDbEntities实现),所以我需要覆盖这个构造函数.

我试过了:

public partial class HOLDbEntities
{
    private const string _contextName = "HOLDbEntities";
    public static string ContextName { get { return _contextName; } }

    public HOLDbEntities()
        : base(ContextName)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

但这会引发一个错误:

HOLDbEntities已经定义了一个名为"HOLDbEntities"的成员,它具有相同的参数类型.

我可以理解为什么会出现这种错误,但是为了做我想要实现的目标,我将如何阻止构造函数首先自动生成?

.net c# asp.net-mvc entity-framework connection-string

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

.NET MVC 6/vNext UserValidator允许使用字母数字字符

我想要做的只是在.NET MVC 6/vNext注册过程中允许使用字母数字字符,以及我见过的每个教程(即配置Microsoft.AspNet.Identity以允许电子邮件地址作为用户名)引用UserManager.UserValidator,其中现在是在当前框架中不可用.

我已经看到了这一点:Microsoft.AspNet.Identity vnext中的UserValidator看起来与我的问题相同,但是他们UserNameValidationRegex从那时起就将该属性从框架中删除了.辉煌.

services.AddIdentity<ApplicationUser, IdentityRole>(
                o => {
                    o.Password.RequireDigit = false;
                    o.Password.RequireLowercase = false;
                    o.Password.RequireUppercase = false;
                    o.Password.RequireNonLetterOrDigit = false;
                    o.Password.RequiredLength = 2;
                    //o.User.AllowedUserNameCharacters here seems to be the only logical thing I can access
                })
                .AddEntityFrameworkStores<ApplicationDbContext>()
                .AddDefaultTokenProviders();
Run Code Online (Sandbox Code Playgroud)

我发现了o.User.AllowedUserNameCharacters,但是由于没有我在此发现的文档,我不知道我必须设置哪种格式?在那里的任何人都在同一条船上工作了吗?

提前致谢.

.net c# asp.net asp.net-mvc asp.net-core

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

JavaScript架构 - 调解员,何时使用它们?

这是关于我的JavaScript代码结构的一般性问题,如果我朝着结构良好的代码方向前进的话.

我目前的代码:

(function (myNamespace, $, undefined) {
    myNamespace.className = {
       init:function { } // do stuff
    }
} (window.myNamespace= window.myNamespace|| {}, jQuery)));

(function (myNamespace, $, undefined) {
        myNamespace.className2 = {
           init:function { } // do stuff
        }
} (window.myNamespace= window.myNamespace|| {}, jQuery)));
Run Code Online (Sandbox Code Playgroud)

显然,使用上面的代码,我可以使用相同的命名空间(按页/站点部分)并通过myNamespace.className.init()等方式调用它们.如果我愿意,我也可以将它们组合在一起,但是我为了可读性而封装了类.

现在,我一直在阅读关于调解员概念的http://addyosmani.com/largescalejavascript/.我的第二个问题是何时(以及如果)我应该使用这些?从className2显然我可以这样做:

 myNamespace.className2 = {
               init:function { myNamespace.className.init() } // do stuff
            }
Run Code Online (Sandbox Code Playgroud)

那么为什么会这样订阅className mediator.subscribe("classNameInit")并在className中发布该事件呢?

我非常乐意接受有关代码结构的建议,因为在我改变编写JavaScript的方式时,这是我需要做的事情.

javascript jquery javascript-framework mediator

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

实体框架 - 使用具有不同连接字符串的相同DbContext

我目前正在尝试在我的应用程序中使用相同的DbContext(我有两个相同结构的数据库).我不太确定我做错了什么,但这是我现在的代码 - 希望我应该很清楚我要做的事情.我正在使用EF Database First(底部的错误似乎没有提示).

我的上下文工厂代码:

public class HOLContextFactory
    {
        public static HOLDbEntities Create()
        {
            return new HOLDbEntities(); // Works
        }

        public static HOLDbQuoteEntities CreateQuote()
        {
            return new HOLDbQuoteEntities(); // Gives error
        }
    }

public partial class HOLDbQuoteEntities : HOLDbEntities
    {
        public HOLDbQuoteEntities()
            : base("HOLDbQuoteEntities") // This should send "HOLDbQuoteEntities" as the base connection string?! 
// Also tried "name=HOLDbQuoteEntities"
            {
            }
        }
Run Code Online (Sandbox Code Playgroud)

Web.config连接字符串:

<add name="HOLDbEntities" connectionString="metadata=res://*/HOLDbContext.csdl|res://*/HOLDbContext.ssdl|res://*/HOLDbContext.msl;provider=System.Data.SqlClient;provider connection string=<connstringdetails>" providerName="System.Data.EntityClient" />

<add name="HOLDbQuoteEntities" connectionString="metadata=res://*/HOLDbContext.csdl|res://*/HOLDbContext.ssdl|res://*/HOLDbContext.msl;provider=System.Data.SqlClient;provider connection string=<connstringdetails>" providerName="System.Data.EntityClient" /> // using diff …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework

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

导入相对于解决方案文件夹的P12/PFX密钥位置

我最近试图进入Google AnalyticsAPI的精彩世界,并且在我的生活中,无法在相对于我的解决方案文件的某个位置获取P12密钥路径,因此(这就是我到目前为止):

var certificate = new X509Certificate2("C:\\mykey.p12", "notasecret", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);
Run Code Online (Sandbox Code Playgroud)

这样工作正常,没问题!但是,我会把它推到Azure,所以C:\根本不起作用.

我试过了:

var certificate = new X509Certificate2("mykey.p12", "notasecret", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);
Run Code Online (Sandbox Code Playgroud)

使用我的解决方案的根路径中的密钥,nada,这根本不起作用.我一直在那里搜索教程,人们说这是可能的,但没有提供关于如何在解决方案本地引用密钥的任何内容,因此它可以在Azure上工作(使用MachineKeySet).

提前致谢.

c# asp.net azure google-analytics-api

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

jQuery - 双击访问项目的ID

应该是一个简单的,但通过我在网上完成的所有研究,我似乎无法找到解决方案!

我目前有一个使用.sortable的可排序列表,然后双击一个.bind事件,绑定事件如下:

$("#controlContainer").sortable({  
   blah blah  
})  
.bind('dblclick', function(event) {  
    alert($(event.eventData).attr('id'));  
});
Run Code Online (Sandbox Code Playgroud)

我的问题是,上面的内容不起作用,我需要获取双击任何元素的ID,但无法找到访问它的方法.

任何有解决方案的人?非常感谢.

jquery

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

Knockout JS - 多维observableArrays并显示子数组数据

我现在已经接近解决这个问题并认为它很简单,但是,必须有一些我想念的东西......

我在ko.observableArray中有一个多维数组,其中是:

网站 - >公司 - >工作

对于我的数据绑定,data-bind="text: Site().Name"很好,正如您所期望的那样.但是,我无法通过data-bind="text: Site().Company().Name"或访问子数组data-bind="text: Site().Company.Name".

有没有其他人有同样的问题,或者有什么我做错了什么?这些对象100%正确加载到数组中,因为我可以在控制台中看到它们.

javascript jquery mvvm knockout.js

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