我有点失落。我正在阅读有关使用 Redis 进行 ASP.NET Core 缓存的 Microsoft 文档。并且文档建议使用 Microsoft.Extensions.Caching.StackExchangeRedis,这是一个开源第三方库。
但是我看到其他一些教程正在使用 Microsoft.Extensions.Caching.Redis,这是一个更原生的 asp.net 核心。
最后他们都使用相同的接口 IDistributedCache
为什么我需要 StackExchangeRedis 以及它比 Microsoft.Extensions.Caching.Redis 有什么优势?
我有一个应用程序,我需要打印一张票.每张票必须是唯一的.该应用程序是Windows窗体,完全用c#编写.对于我们的应用,我们使用的是三星ML-2525激光单色打印机.
流程基本上如下,操作员选择产品/票据(这是唯一的),然后按下一个按钮,执行以下两项操作:
出于某种原因,每隔一段时间,需要打印的图像不会被发送到打印机.这是一种罕见的情况,但它确实发生了.
我尝试使用Win32_Printer(http://msdn.microsoft.com/en-us/library/Aa394363)连接到打印机,但我无法获得当前打印机的状态(在线,离线,低碳粉,卡纸等).我只能检查打印机是否存在以及纸张尺寸是否正确安装.我尝试了类似以下的代码,但它没有用
private string MonitorPrintJobWmi()
{
var jobMessage = String.Empty;
var scope = new ManagementScope(ManagementPath.DefaultPath);
scope.Connect();
var selectQuery = new SelectQuery { QueryString = @"select * from Win32_PrintJob" };
var objSearcher = new ManagementObjectSearcher(scope, selectQuery);
var objCollection = objSearcher.Get();
foreach (var job in objCollection)
{
if (job != null)
{
jobMessage += String.Format("{0} \r\n", job["Name"].ToString());
jobMessage += String.Format("{0} \r\n", job["JobId"].ToString());
_jobId = Convert.ToInt32(job["JobId"]);
jobMessage += String.Format("{0} \r\n", job["JobStatus"].ToString());
jobMessage += String.Format("{0} \r\n", job["Status"].ToString()); …Run Code Online (Sandbox Code Playgroud) 我目前有一个通过clickonce部署部署的winforms应用程序.当我尝试从一台机器部署它时,它会抛出以下错误:
要在"先决条件"对话框中启用"从我的应用程序的相同位置下载先决条件",必须将项目"Microsoft .NET Framework 4(x86和x64)"的文件"DotNetFX40\dotNetFx40LP_Full_x86_x64es.exe"下载到本地计算机.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=239883.
我正在尝试部署的应用程序将西班牙语作为其发布语言,因此它尝试下载语言包(dotNetFx40LP_Full_x86_x64es.exe)
我确实下载了必要的文件作为错误建议中的链接,但问题仍然存在.我将错误链接中建议的文件添加到文件夹%ProgramFiles%\ Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages(对于Visual Studio 2010).我还尝试将它们添加到%ProgramFiles%\ Microsoft SDKs\Windows\v8.0A\Bootstrapper\Packages(对于Visual Studio 2012)
我在我的计算机上安装Visual Studio 2012时启动此问题.我现在在Windows 7 Professional(64位)上并排安装了Visual Studio 2010和2012.之前工作正常.它在另一台没有安装Visual Studio 2012的机器上也能正常工作.
我尝试使用Visual Studio 2010和2012发布应用程序但没有工作.此外,如果我将语言更改为英语,它会发布.
卸载Visual Studio 2012并以英语发布不是有效选项.
任何见解都是受欢迎的.
deployment clickonce prerequisites visual-studio-2010 visual-studio-2012
在这个问题中,有一个关于如何使用webjob的示例,该webjob可以在不与azure表存储交互的情况下执行一些后台操作.
我试图在答案中复制代码,但它抛出以下错误:
无法从Azure WebJobs SDK调用"Void ScheduleNotifications()".是否缺少Azure WebJobs SDK属性?"
在这个链接中,他们有一个类似的错误,在其中一个答案中,它说这是在0.4.1-beta版本中修复的.我正在运行0.5.0-beta版本,我遇到了错误.
这是我的代码的副本:
class Program
{
static void Main()
{
var config = new JobHostConfiguration(AzureStorageAccount.ConnectionString);
var host = new JobHost(config);
host.Call(typeof(Program).GetMethod("ScheduleNotifications"));
host.RunAndBlock();
}
[NoAutomaticTrigger]
public static void ScheduleNotifications()
{
//Do work
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道我是否遗漏了某些内容,或者这仍然是Webjobs SDK中的一个错误.
更新:根据Victor的回答,计划类必须公开.
工作代码:
public class Program
{
static void Main()
{
var config = new JobHostConfiguration(AzureStorageAccount.ConnectionString);
var host = new JobHost(config);
host.Call(typeof(Program).GetMethod("ScheduleNotifications"));
host.RunAndBlock();
}
[NoAutomaticTrigger]
public static void ScheduleNotifications()
{
//Do work
}
}
Run Code Online (Sandbox Code Playgroud) 我使用本教程将我的解决方案从MVC 4升级到Visual Studio 2012中的MVC 5 .在最后一步中,我从我的.csproj文件中删除了MVC 4的ProjectTypeGuid .
现在的问题是,我没有看到Add Controller,Add View在Visual Studio中,当我想创造新的控制器/浏览次数.
我读了MVC 4的这个答案所以我知道我需要为MVC 5获取正确的ProjectTypeGuid才能重新获得该功能.我想知道是否有人知道那是什么,以便我可以将它们添加到我的.csproj文件中?
我正在按照本指南使用 SignalR 触发器绑定构建我的第一个 Azure Function App 。我已经在 Azure 中设置了 Function App 和 SignalR 服务。
但现在我需要调试我的 SignalR 触发函数之一。我尝试使用本地函数主机 (func.exe) 使用 Visual Studio 2022 来执行此操作,只需在我的 Azure Functions 项目中按 F5 即可。
我的 ServerlessHub 带有一个函数 JoinGroup,我想在 Visual Studio 中调用和调试该函数。
namespace FunctionApp
{
public class SimpleChat : ServerlessHub
{
[FunctionName("negotiate")]
public SignalRConnectionInfo Negotiate([HttpTrigger(AuthorizationLevel.Anonymous)]HttpRequest req)
{
var claims = GetClaims(req.Headers["Authorization"]);
return Negotiate(
claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value,
claims
);
}
[FunctionName(nameof(JoinGroup))]
public async Task JoinGroup([SignalRTrigger]InvocationContext invocationContext, string connectionId, string groupName)
{
throw new ApplicationException("CODE REACHED"); …Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,其中我有两个不同的实体,产品和ShoppingCarts.每种产品都是唯一的,并具有唯一的标识符.我想添加一个尚未出现在另一个购物车中但未出售给ShoppingCart的产品.
产品实体简化:
public class Products
{
public int Id { get; set; }
public string Name{ get; set; }
public bool Sold { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
购物车实体简化:
public class ShoppingCarts
{
public int Guid Guid { get; set; }
public int ProductId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以首先我检索所有Product.Id,然后将它们添加到我的购物车.我的方法看起来像这样:
private IQueryable<Products> GetAvailableProductId(int quantity)
{
var query = (from p in _context.Set<Products>()
join sc in _context.Set<ShoppingCarts>() on p.Id equals sc.ProductId into subset
from sc in subset.DefaultIfEmpty()
where !p.Sold && sc == …Run Code Online (Sandbox Code Playgroud) 设想:
配置 Azure 应用程序网关以将流量路由到不同的 Azure Web 应用程序,以利用 Web 应用程序防火墙 (WAF)。
初始配置工作正常,只是浏览器中的最终 URL 是 {mysite}.azurewebsites.net。我希望这是自定义域名 {subdomain}.{mysite}.com。这是通过将后端池绑定到应用程序服务来配置的。将其更改为 FQDN 不起作用。下面的屏幕截图。
CNAME 已指向网关。
期望的结果
当有人点击 {subdomain}.{mysite}.com(已配置为指向网关)时,我应该得到 {subdomain}.{mysite}.com 而不是 {mysite}.azurewebsites.net
当前设置:
网关配置了多站点侦听器,其规则指向后端池,并且还绑定到 http 设置。
侦听器正在侦听 {subdomain}.{mysite}.com
以下链接提供了一些部分答案/配置,但没有一个对我有用。 应用程序网关 - 502 错误
https://learn.microsoft.com/en-us/azure/application-gateway/create-web-app
以下是使用 azure 门户 UI 在 Azure 应用程序网关和 WAF(Web 应用程序防火墙)后面配置具有自定义域的 azure 应用服务的步骤列表。
使用以下设置配置运行状况探测器
配置 Http 设置
配置监听器
配置基本规则
我正在运行一种算法来使用形态学操作来分割图像的一部分.我最终得到了一个代表分割结果的二维二进制图像.即,面具.我的问题是如何在其上绘制原始图像和掩模覆盖颜色.
谢谢.
可能重复:
将数据从Action传递给另一个Action
我有一个视图,我提交一个表单,并根据我想重定向到一个动作的结果.对应于和动作的视图是强类型的,它应该接受ResultsViewModel.
我正在尝试使用T4MVC传递ResultsViewModel.
以下是代码:
[HttpPost]
public virtual ActionResult AddEntity(string viewModel)
{
//Deserialize using Json.NET
var entity = JsonConvert.DeserializeObject<MyEntity>(viewModel);
var success = DoSomething(); //returns boolean
if(success)
{
var result = new ResultsViewModel { MyEntity = entity, MessageId = 1};
return RedirectToAction(MVC.MyController.ResultsPage(result));
}
var result = new ResultsViewModel { MyEntity = entity, MessageId = 2};
return RedirectToAction(MVC.MyController.ResultsPage(result));
}
public virtual ActionResult ResultsPage(ResultsViewModel viewModel)
{
return View(viewModel);
}
Run Code Online (Sandbox Code Playgroud)
当代码到达时
public virtual ActionResult ResultsPage(ResultsViewModel viewModel)
{
return View(viewModel);
}
Run Code Online (Sandbox Code Playgroud)
viewModel始终等于null.
我知道我可以这样做:
return RedirectToAction("ResultsPage", …Run Code Online (Sandbox Code Playgroud) 我目前正在使用动态 LINQ(原始 codeplex 链接)库来实现动态搜索功能。我有一个要求,我需要OrderBy一个DateTime?只考虑日期而不是时间的字段。我正在使用EntityFramework.
这是示例实体。
public class SampleEntity
{
public DateTime? DateCreated { get; set; }
public bool Flag { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是查询数据库的代码。
var orderByString = "DateCreated.Value.Date asc, Flag"; //This is a dynamic string
var query = _context.Set<SampleEntity>().OrderBy(orderByString);
Run Code Online (Sandbox Code Playgroud)
这个表达式 ("DateCreated.Value.Date") 被解析没有问题,System.Linq.Dynamic但它抛出以下错误(这是可以理解的),因为它不受 LINQ to Entities 支持。请记住,这必须在 IQueryable 上工作(我不能使用这篇文章中的答案),因为我需要在服务器端进行排序。
LINQ to Entities 不支持指定的类型成员“日期”。仅支持初始值设定项、实体成员和实体导航属性。
解决的办法是使用DbFunctions.TruncateTime()如表示在这个答案等。但是,这不会与System.Linq.Dynamic
关于如何解决这个问题的任何想法。可能的解决方案是将另一列添加到只有日期部分的数据库DateCreated并查询该列。但是,我宁愿不这样做,而是在寻找解决此问题的其他方法。另一种方法是动态生成 lambda 表达式并返回 DbFunctions.TruncateTime,然后对 DB …
c# linq linq-to-entities entity-framework entity-framework-6