我有两个在同一台机器上运行的.net应用程序.第一个应用程序是"引擎".它构建图像 - 图像的大小约为4M.第二个应用程序是"查看器".它显示了"引擎"发送的图像.引擎每10-15秒发送一次图像.
我的问题是将图像从引擎传递给观看者的麻烦方法是什么.目前,我正在使用FileSystem.引擎将图像写入文件系统文件夹,并使用FileSystemWatcher将查看器获取此文件.
那方法好吗?这可靠吗?
我们有几个用 .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)