小编MTs*_*MTs的帖子

在同一台计算机上的.net应用程序之间传输大数据

我有两个在同一台机器上运行的.net应用程序.第一个应用程序是"引擎".它构建图像 - 图像的大小约为4M.第二个应用程序是"查看器".它显示了"引擎"发送的图像.引擎每10-15秒发送一次图像.

我的问题是将图像从引擎传递给观看者的麻烦方法是什么.目前,我正在使用FileSystem.引擎将图像写入文件系统文件夹,并使用FileSystemWatcher将查看器获取此文件.

那方法好吗?这可靠吗?

.net c# filesystems filesystemwatcher communication

14
推荐指数
2
解决办法
5658
查看次数

.Net 标准的自定义 System.Web.HttpContext

我们有几个用 .Net Framework 编写的网站。现在我们想迁移到.Net Core。我们希望一一进行,以便旧网站和新网站能够并存。所有网站都共享通用的 dll,例如 LoggerDll。

为了对两个网站(旧的和新的)仅使用一个 dll,我们将 LoggerDll 更改为 .Net Standard,并添加两个网站对它的引用。

问题是LoggerDll引用了System.Web dll来获取请求的IP(以及其他请求信息)以写入日志,而它在.Net Core中不存在。

例如:

public void WriteToLog(string message)
{
    //This line doesn't compile in .Net Core
    string userIp = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
    WriteToDB(message, userIp);
}
Run Code Online (Sandbox Code Playgroud)

我不想将 IP 作为参数传递给 WriteToLog,因为这样我需要将其作为参数添加到调用它的所有方法中,并且几乎每个方法在发生异常时都会调用 WriteToLog。

因此,我更喜欢继续从某些“全局”对象获取请求信息,但它应该在 .Net Core 和 .Net Framework 中编译。

我想创建新类“MyRequestInfo”,为其创建一个静态属性,并在“BeginRequest”事件中用数据填充它。

例如:

public class MyRequestInfo
{
    public string UserIp { get; set; }
}

public class MyRequest
{
    [ThreadStatic] \\ Is ThreadStatic is ok?
    public static MyRequestInfo ReqInfo { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net multithreading asp.net-core

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