我正在尝试使用SignalR应用程序创建Redis消息总线故障转移方案.
首先,我们尝试了一个简单的硬件负载均衡器故障转移,它只监控两台Redis服务器.SignalR应用程序指向单个HLB端点.然后我失败了一台服务器,但无法成功通过第二台Redis服务器获取任何消息,而没有回收SignalR应用程序池.可能这是因为它需要向新的Redis消息总线发出设置命令.
从SignalR RC1开始,Microsoft.AspNet.SignalR.Redis.RedisMessageBus
使用Booksleeve RedisConnection()
连接到pub/sub的单个Redis.
我创建了一个新类,RedisMessageBusCluster()
它使用Booksleeve ConnectionUtils.Connect()
连接到Redis服务器集群中的一个.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using BookSleeve;
using Microsoft.AspNet.SignalR.Infrastructure;
namespace Microsoft.AspNet.SignalR.Redis
{
/// <summary>
/// WIP: Getting scaleout for Redis working
/// </summary>
public class RedisMessageBusCluster : ScaleoutMessageBus
{
private readonly int _db;
private readonly string[] _keys;
private RedisConnection _connection;
private RedisSubscriberConnection _channel;
private Task _connectTask;
private readonly TaskQueue _publishQueue = new TaskQueue();
public RedisMessageBusCluster(string serverList, int db, IEnumerable<string> keys, IDependencyResolver resolver) …
Run Code Online (Sandbox Code Playgroud) 这是在Windows Server 2008上运行的,几个月前就可以运行了.我刚刚再次使用这个服务器与VS一起开发.
这是用于提供一些测试站点的实时Web服务器.
这在运行Visual Studio时启动,然后启动我的项目以进行调试.
尝试localhost:xxxx
在IISExpress 启动时启动任何站点(使用配置中的实际端口#来访问不同的站点):
This webpage is not available
ERR_CONNECTION_REFUSED
Run Code Online (Sandbox Code Playgroud)
我已经在这几天了,因为我已经读过其他人有过类似的问题,尝试过我读过的大部分内容,包括将managedruntimeversion
.v4.0 更改为"v4.0.30319".我从来没有必须在此之前执行此操作)并禁用日志记录模块(此处的所有建议).
我的hosts
文件中只有两个条目指向内部服务器IP地址.没有localhost
相关的IP或参考.
我已经完成了重新安装IIS Express和Visual Studio 2013.我还创建了一个全新的WebApplication
站点来尝试解决这个问题(简单而没有其他复杂的绑定).
当我旋转Fiddler时,我在页面上看到以下内容:
[Fiddler] The socket connection to localhost failed.
ErrorCode: 10061.
No connection could be made because the target machine actively refused it 127.0.0.1:23162
Run Code Online (Sandbox Code Playgroud)
我已经从IE的LAN连接部分删除了所有代理设置,之前我在VS中获得了一个red-x弹出窗口,表明IISExpress无法启动.
这不是SSL与非SSL的问题.
我安装了TFS服务器 - 卸载了,以防有一些奇怪的绑定干扰.
我尝试多次删除IISExpress配置/设置文件夹.
当前的applicationhost.config包含:
<site name="WebApplication1" id="4">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\TFS-WorkRepository\Sandbox\WebApplication1\WebApplication1" …
Run Code Online (Sandbox Code Playgroud) 我有一个托管的WCF服务,我为其创建了一个自定义工厂,这样就可以使用多个主机头:
/// <summary>
/// Required for hosting where multiple host headers are present
/// </summary>
public class MultipleHostServiceFactory : ServiceHostFactory
{
protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
{
List<Uri> addresses = new List<Uri>();
addresses.Add(baseAddresses[0]);
return base.CreateServiceHost(serviceType, addresses.ToArray());
}
}
Run Code Online (Sandbox Code Playgroud)
我很确定我的配置文件现在在客户端和服务器上都是正确的(可以在这里看到).
我得到的错误似乎与工厂有关:
此工厂已启用手动寻址,因此必须预先发送所有发送的消息.
public string GetData(int value) {
return base.Channel.GetData(value);
}
Run Code Online (Sandbox Code Playgroud)
错误发生在行return base.Channel.GetData(value);
.
今天早些时候,我遇到了Kaazing的 HTML5 WebSocket API.
看起来很棒,但由于我现在只研究WebSocket实时财务更新的可能性,我想听一些建议,以及在规划这个架构时要避免的陷阱.
我正在看ASP.Net MVC,可能还有一些WPF/Silverlight MVVM.
是否有其他更好的WebSocket API(以及为什么),以及一些很好的例子?
此外,WebSockets可以处理什么样的流量?我的意思是,如果我们在系统上有超过一百万用户实时更新,那么硬件需求如何变化,因为软件架构实现了WebSockets?
我想知道一些用于测试基于SignalR集线器的应用程序的不同方法.
最近,在使用AngularJS时,我非常喜欢许多功能,比如创建自定义抽象数据工厂等.
KendoUI也有类似MVVM,SPA路由等功能,AngularJS提供了这些功能,所以我很好奇混合两者的好处是什么(除了KendoUI的丰富UI功能之外)?
- 更新 -
我要问这个问题是为了澄清,对于那些可能会对每个问题的好处略有困惑的人,以及为什么人们会在一个项目中使用它们而不是一个在另一个项目中.
例如 - Javascript单元测试功能(简单地使用Angular控制器完成,但没有看到任何人使用KendoUI执行此操作).
似乎剑道正在努力做到这一切,但UI最好.
谢谢.
- 更新 -
由于写这个问题我曾经走过和集成KendoUI网格角使用OData的和已经写了一个教程这里在www.whatsinyourlunch.com如何做到这一点,在希望这将是有用的人.
该堆栈是通过通用存储库访问的AngularJS,KendoUI,OData,WebAPI2,.Net MVC5,C#,Entity Framework.
我从MS SQL 2008R2数据库返回一个数据集,该数据集包含一个数据表,我已经从我的Razor视图中获取数据.我添加了一个byte []字段,其中包含我试图在该视图上显示的图像缩略图.
由于字节数组相对较小,我想我会尝试内联显示字节数组.但是,在阅读后可能会出现一些与浏览器相关的问题,我放弃了这一点.
创建一个控制器方法似乎是要走的路(这里有两种方法),但是我已经准备好了我的视图上的字节数组,并且不需要再根据ID进行另一次数据库调用来获取它.
这样做,由于显而易见的原因不起作用:
...在页面上显示其他数据....
@if (Model.dsResults.Tables[0].Rows[i]["ImageBytes"] == null)
{
<img src="@Url.Content("~/Content/Images/NoPhoto.png")" border="0" />
}
else
{
<img src="@Url.Action("GetImage", "SearchResults", new { imageBytes = Model.dsResults.Tables[0].Rows[i]["ImageBytes"] })" alt="Product Image" />
}
Run Code Online (Sandbox Code Playgroud)
...
控制器方法:
[Authorize]
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult GetImage(byte[] imageBytes)
{
byte[] byteArray = imageBytes;
return new FileContentResult(byteArray, "image/jpeg");
}
Run Code Online (Sandbox Code Playgroud)
...因为这本质上是试图通过http发送字节数组.
所以,我的问题是,因为我的Razor视图中已经有字节数组,我该如何显示它?
- 更新 -
我意识到不建议在视图中进行处理,但由于数据已经存在,所以不能这样做:
Response.Write((byte[])Model.dsResults.Tables[0].Rows[i]["ImageBytes"]);
Run Code Online (Sandbox Code Playgroud)
要么...
Stream s = new MemoryStream(((byte[])Model.dsResults.Tables[0].Rows[i]["ImageBytes"]));
System.Drawing.Image img = new System.Drawing.Bitmap(s);
Run Code Online (Sandbox Code Playgroud)
在其他帖子中,我已经读过你做了一个Response.Write(byte [] ...))但是在这种情况下这不起作用.
- 更新 -
在我不断寻求效率的过程中(不必向数据库发出另一个请求),WebImage助手似乎是一个很好的选择.它的一个构造函数将接受一个字节数组来初始化类,然后使用.Write("jpeg")方法,我可以看到图像. …
我有一个TSQL sproc,它构建一个查询并执行它,如下所示:
EXEC (@sqlTop + @sqlBody + @sqlBottom)
Run Code Online (Sandbox Code Playgroud)
@sqlTop包含类似SELECT TOP(x)col1,col2,col3 ......
TOP(x)将限制返回的行,所以稍后我想知道表中的实际行数与查询匹配的行数.
然后我用以下内容替换@sqlTop:
EXEC ('SELECT @ActualNumberOfResults = COUNT(*) ' + @sqlBody)
Run Code Online (Sandbox Code Playgroud)
我可以看出为什么这不起作用,为什么没有声明错误的值发生,但我认为它充分描述了我想要完成的事情.
有任何想法吗?
我在使用Twitter引导程序启动MVC4应用程序时遇到问题.
在VS 2012中,我创建了一个新的空MVC4应用程序,安装了以下软件包:
看起来像一些导航路线选项相关的问题,因为我正在经历这些少数的turorials Link 1和Link 2.
在阅读有关可能的编译问题的说明时,我重新启动了解决方案,但我收到的错误不是自述文件中的错误,而是围绕着NavigationRouteOptions
,NavigationRouteFilters
和RouteValueDictionary
,FilterToken
以及HasFilterToken
:
'System.Web.Routing.RouteValueDictionary' does not contain a definition for 'HasFilterToken' and no extension method 'HasFilterToken' accepting a
first argument of type 'System.Web.Routing.RouteValueDictionary' could be found (are you missing a using directive or an assembly reference?)
...\AdministrationRouteFilter.cs 18
'System.Web.Routing.RouteValueDictionary' does not contain a definition for 'FilterToken' and no extension method 'FilterToken' accepting a
first argument of type 'System.Web.Routing.RouteValueDictionary' could be …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用此扩展程序让scrcpy在 Visual Studio 中运行,并确定我是否可以扩展其功能。
无法为 Visual Studio 2019 安装 VSIX 扩展
安装失败提示:
我更新了<InstallationTarget>
,并<Dependency>
按照在这里,
您需要将 InstallationTarget 更改为 [15.0,17.0),并将 Prerequisite 更改为 [15.8.27729.1,)。
我解压缩了 .vsix 文件,将extension.vsixmanifest
文件更新为以下内容:
<Installation>
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[15.0,17.0)" />
</Installation>
<Dependencies>
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" Version="[4.5,)" />
<Dependency Id="Microsoft.VisualStudio.MPF.15.0" DisplayName="Visual Studio MPF 15.0" Version="[15.0]" />
</Dependencies>
<Prerequisites>
<Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[15.8.27729.1,)" DisplayName="Visual Studio core editor" />
</Prerequisites>
Run Code Online (Sandbox Code Playgroud)
压缩目录,重命名为*.vsix,再次尝试安装。
安装程序现在可以识别 Visual Studio 2019,开始安装但失败,缺少Microsoft.VisualStudio.Component.CoreEditor
.
12/11/2019 5:25:00 PM - Beginning …
Run Code Online (Sandbox Code Playgroud)