使用IIS 与程序交互时,发布到IIS上获取不到数据提供方的数据(VSF5运行可以获取到数据),MemoryMappefFile基本使用不做介绍

数据方

 static void Main(string[] args)
{ Run();
}
static Random random = new Random();
private static MemoryMappedFile memoryFile; static void Run()
{
#region MyRegion var data = new List<PublishVariableValue>();
//1
data.Add(Factory("P631_HA2_Health"));
data.Add(Factory("P143_HA2_LPHD1_Health"));
data.Add(Factory("P631_HB2_Health"));
data.Add(Factory("P143_HB2_LPHD1_Health"));
data.Add(Factory("P3A109_Health"));
data.Add(Factory("P3A108_Health"));
data.Add(Factory("P3A107_Health"));
//2
data.Add(Factory("P3A106_Health"));
data.Add(Factory("P3A105_Health"));
data.Add(Factory("P3A104_Health"));
data.Add(Factory("P3A103_Health"));
data.Add(Factory("P3A102_Health"));
data.Add(Factory("P3A101_Health"));
data.Add(Factory("P3A202_Health"));
data.Add(Factory("P3A203_Health"));
data.Add(Factory("P3A204_Health"));
data.Add(Factory("P3A205_Health"));
data.Add(Factory("P3A206_Health"));
data.Add(Factory("P3A207_Health"));
data.Add(Factory("P3A208_Health"));
data.Add(Factory("P3A209_Health"));
//4
data.Add(Factory("MV109_Health"));
data.Add(Factory("MV108_Health"));
data.Add(Factory("MV107_Health"));
data.Add(Factory("MV106_Health"));
data.Add(Factory("MV105_Health"));
data.Add(Factory("MV104_Health"));
data.Add(Factory("MV103_Health"));
data.Add(Factory("MV101_Health"));
data.Add(Factory("MV203_Health"));
data.Add(Factory("MV204_Health"));
data.Add(Factory("MV205_Health"));
//5 data.Add(Factory("MV209_Health"));
data.Add(Factory("MV208_Health"));
data.Add(Factory("MV207_Health"));
data.Add(Factory("MV206_Health"));
//6
data.Add(Factory("LV03AN413_2_Health"));
data.Add(Factory("LV03AN413_3_Health"));
data.Add(Factory("LV03AN413_4_Health"));
data.Add(Factory("LV03AN413_5_Health"));
data.Add(Factory("LV03AN413_6_Health"));
//7
data.Add(Factory("LV03AN414_Health"));
data.Add(Factory("LV03AN413_1_Health"));
data.Add(Factory("LV03AN407_3_Health"));
data.Add(Factory("LV03AN407_2_Health"));
data.Add(Factory("LV03AN407_1_Health"));
//8
data.Add(Factory("LV03AN401_Health"));
data.Add(Factory("LV03AN402_Health"));
data.Add(Factory("LV03AN403_Health"));
data.Add(Factory("LV03AN404_Health"));
data.Add(Factory("LV03AN406_1_Health"));
data.Add(Factory("LV03AN406_2_Health"));
data.Add(Factory("LV03AN406_3_Health"));
data.Add(Factory("LV03AN406_4_Health"));
data.Add(Factory("LV03AN406_5_Health"));
data.Add(Factory("LV03AN406_6_Health"));
//9
data.Add(Factory("LV03AN416_1_Health"));
data.Add(Factory("LV03AN416_2_Health"));
data.Add(Factory("LV03AN416_3_Health"));
data.Add(Factory("LV03AN416_4_Health"));
data.Add(Factory("LV03AN417_1_Health"));
data.Add(Factory("LV03AN417_2_Health"));
data.Add(Factory("LV03AN417_3_Health"));
data.Add(Factory("LV03AN417_4_Health"));
data.Add(Factory("LV03AN418_1_Health"));
data.Add(Factory("LV03AN418_2_Health"));
data.Add(Factory("LV03AN418_3_Health"));
//10
data.Add(Factory("LV03AN419_7_Health"));
data.Add(Factory("LV03AN419_6_Health"));
data.Add(Factory("LV03AN419_5_Health"));
data.Add(Factory("LV03AN419_4_Health"));
data.Add(Factory("LV03AN419_3_Health"));
data.Add(Factory("LV03AN419_2_Health"));
data.Add(Factory("LV03AN419_1_Health"));
data.Add(Factory("LV03AN418_7_Health"));
data.Add(Factory("LV03AN418_6_Health"));
data.Add(Factory("LV03AN418_5_Health"));
data.Add(Factory("LV03AN418_4_Health"));
//11
data.Add(Factory("LV03AN306_9_Health"));
data.Add(Factory("LV03AN306_8_Health"));
data.Add(Factory("LV03AN306_7_Health"));
//12
data.Add(Factory("LV03AN301_Health"));
data.Add(Factory("LV03AN302_Health"));
data.Add(Factory("LV03AN303_Health"));
data.Add(Factory("LV03AN304_Health"));
data.Add(Factory("LV03AN306_1_Health"));
data.Add(Factory("LV03AN306_2_Health"));
data.Add(Factory("LV03AN306_3_Health"));
data.Add(Factory("LV03AN306_4_Health"));
data.Add(Factory("LV03AN306_5_Health"));
data.Add(Factory("LV03AN306_6_Health"));
//13
data.Add(Factory("LV03AN307_1_Health"));
data.Add(Factory("LV03AN307_2_Health"));
data.Add(Factory("LV03AN307_3_Health"));
data.Add(Factory("LV03AN307_4_Health"));
data.Add(Factory("LV03AN307_5_Health"));
data.Add(Factory("LV03AN307_6_Health"));
data.Add(Factory("LV03AN307_7_Health"));
data.Add(Factory("LV03AN307_8_Health"));
data.Add(Factory("LV03AN307_9_Health"));
data.Add(Factory("LV03AN308_1_Health"));
data.Add(Factory("LV03AN308_2_Health"));
//14
data.Add(Factory("LV03AN310_Health"));
data.Add(Factory("LV03AN309_Health"));
data.Add(Factory("LV03AN308_3_Health"));
//15
data.Add(Factory("LV03AN206_9_Health"));
data.Add(Factory("LV03AN206_8_Health"));
data.Add(Factory("LV03AN206_7_Health"));
//16
data.Add(Factory("LV03AN201_Health"));
data.Add(Factory("LV03AN202_Health"));
data.Add(Factory("LV03AN203_Health"));
data.Add(Factory("LV03AN204_Health"));
data.Add(Factory("LV03AN206_1_Health"));
data.Add(Factory("LV03AN206_2_Health"));
data.Add(Factory("LV03AN206_3_Health"));
data.Add(Factory("LV03AN206_4_Health"));
data.Add(Factory("LV03AN206_5_Health"));
data.Add(Factory("LV03AN206_6_Health"));
//17
data.Add(Factory("LV03AN207_1_Health"));
data.Add(Factory("LV03AN207_2_Health"));
data.Add(Factory("LV03AN207_3_Health"));
data.Add(Factory("LV03AN208_1_Health"));
data.Add(Factory("LV03AN208_2_Health"));
data.Add(Factory("LV03AN208_3_Health"));
data.Add(Factory("LV03AN208_4_Health"));
data.Add(Factory("LV03AN209_Health"));
//18
data.Add(Factory("LV03AN111_Health"));
data.Add(Factory("LV03AN108_Health"));
data.Add(Factory("LV03AN107_3_Health"));
data.Add(Factory("LV03AN107_2_Health"));
//19
data.Add(Factory("LV03AN101_Health"));
data.Add(Factory("LV03AN102_Health"));
data.Add(Factory("LV03AN103_Health"));
data.Add(Factory("LV03AN104_Health"));
data.Add(Factory("LV03AN106_1_Health"));
data.Add(Factory("LV03AN106_2_Health"));
data.Add(Factory("LV03AN106_3_Health"));
data.Add(Factory("LV03AN106_4_Health"));
data.Add(Factory("LV03AN106_5_Health"));
data.Add(Factory("LV03AN107_1_Health")); //温控
data.Add(Factory("LV1_BYQ_Health"));
data.Add(Factory("LV2_BYQ_Health"));
data.Add(Factory("LV3_BYQ_Health"));
data.Add(Factory("LV4_BYQ_Health"));
#endregion foreach (var item in data)
{
Console.WriteLine($"Name:{item.name},Value:{item.value}");
} bool flag2 = memoryFile == null;
if (flag2)
{
memoryFile = MemoryMappedFile.CreateOrOpen("Global\\EMOSTServerPublishVariables", 1024*100); }
var stream = memoryFile.CreateViewStream(0,1024*100,MemoryMappedFileAccess.Write);
var formatter = new BinaryFormatter();
stream.Seek(0L, SeekOrigin.Begin);
formatter.Serialize(stream, data);
stream.Close();
stream.Dispose(); Thread.Sleep(1000);
Run();
}
static PublishVariableValue Factory(string name)
{ return new PublishVariableValue
{
value = random.Next(0,2),
name = name,
source = "CTAPI"
};
}

  接受数据方

 MemoryMappedFileSecurity mSec = new MemoryMappedFileSecurity();
mSec.AddAccessRule(new AccessRule<MemoryMappedFileRights>("everyone",
MemoryMappedFileRights.FullControl, AccessControlType.Allow));
var memoryMappedFile = MemoryMappedFile.CreateOrOpen("Global\\EMOSTServerPublishVariables", 1024 * 100, MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileOptions.None, mSec, HandleInheritability.Inheritable);
memoryMappedFile.SetAccessControl(mSec);
var strream = memoryMappedFile.CreateViewStream();
var formatter = new BinaryFormatter();
strream.Seek(0L, SeekOrigin.Begin);
List<PublishVariableValue> result = formatter.Deserialize(strream) as List<PublishVariableValue>;
return Json(result, JsonRequestBehavior.AllowGet);

  

MemoryMappedFile 在IIS与程序跨程序交互数据的权限问题的更多相关文章

  1. 通过钩子程序跨程序关闭Window

    需求: 在实际场景中会有自身程序在调用第三方的动态库过程中,因为第三方的动态库弹框导致线程阻塞,必须手动将弹窗关闭后才能回到自身程序的主线程中. 最简单的场景就是很多自助设备,本身是没有固定操作员的, ...

  2. 微信小程序跨页面获取数据示例

    index.wxml <navigator class="navs" url="{{urls}}"> 中国 </navigator> i ...

  3. Android入门(十四)内容提供器-实现跨程序共享实例

    原文链接:http://www.orlion.ga/661/ 打开SQLite博文中创建的 DatabaseDemo项目,首先将 MyDatabaseHelper中使用 Toast弹出创建数据库成功的 ...

  4. IIS安装与MVC程序部署

    最近在做访客系统,虽然说不是什么多大的项目,但麻雀虽小五脏俱全,使用EF Code First+Mysql+Frozenui响应式布局,感觉通过这个项目学到好多东西,Mysql的使用.EF映射Mysq ...

  5. android: 实现跨程序数据共享

    简单起见,我们还是在上一章中 DatabaseTest 项目的基础上继续开发,通过内容提供器 来给它加入外部访问接口. 打开 DatabaseTest 项目,首先将 MyDatabaseHelper ...

  6. 发布在IIS上的Web程序,调用服务器的COM组件

    场景大致是这样的,在工厂中分布着许多的PDA点,这些PDA点都要进行实时的扫描--打印操作.实现方法是采用网络打印机,然后服务器安装驱动,管理着所有的打印机.然后服务器,发布一个WebService, ...

  7. iis重写模块实现程序自动二级域名,微软提供的URL重写2.0版本适用IIS以上

    在iis7以后微软提供了url重写2.0版本,可以通过安装重写组件来实现.适用于iis7以上版本. 安装有两种方式可以选择,一是下载安装文件,二是通过“web平台安装程序”安装 1.下载安装文件 下载 ...

  8. 微信小程序:JS 交互逻辑

    微信小程序:JS 交互逻辑 一.JS 交互逻辑 一个服务仅仅只有界面展示是不够的,还需要和用户做交互:响应用户的点击.获取用户的位置等等.在小程序里边,我们就通过编写 JS 脚本文件来处理用户的操作. ...

  9. WEBXONE IIS部署C/S程序

    WEBXONE IIS部署C/S程序 在EXE的主窗体的ONCREATE()里添加如下代码,部署的时候记得带wxoBase.dll. uses wxoExec; procedure TFrmMain. ...

随机推荐

  1. 用 @Value("${xxxx}")注解从配置文件读取值的用法

    1.  用法: 从配置properties文件中读取init.password 的值. @Value("${init.password}") private String init ...

  2. C 函数指针 函数指针数组 转移表

    内容来自<c和指针>,整理后方便个人理解 高级声明 cdel程序可以方便的给出声明的释义 指向函数的指针 int ( *f ) ( int n_values, float amount ) ...

  3. Proxychains完成Linux命令行代理

    前言 Proxychains是一个Linux和类Unix平台非常流行的命令行代理工具,它支持强制应用的TCP 连接通过代理,支持 Tor.HTTP与 Socks 代理.与 sshuttle 不同的是, ...

  4. docker初探和基础搭建

    个人博客 docker中文手册 Docker 是什么? docker是一个开源的软件部署解决方案: docker也是轻量级的应用容器框架: docker可以打包.发布.运行任何的应用. 在我的粗浅理解 ...

  5. 前端面试题之手写promise

    前端面试题之Promise问题 前言 在我们日常开发中会遇到很多异步的情况,比如涉及到 网络请求(ajax,axios等),定时器这些,对于这些异步操作我们如果需要拿到他们操作后的结果,就需要使用到回 ...

  6. 使用寄存器点亮LED

    1. 项目:使用stm32寄存器点亮LED, 分别点亮红.绿.蓝3个灯. 2. 代码: 只需要编写main.c程序,stm3210x.h程序为空(只需要新建即可). 2.1 点亮绿灯main.c程序 ...

  7. mysql分表之后怎么平滑上线?

    分表的目的 项目开发中,我们的数据库数据越来越大,随之而来的是单个表中数据太多.以至于查询数据变慢,而且由于表的锁机制导致应用操作也受到严重影响,出现了数据库性能瓶颈. 当出现这种情况时,我们可以考虑 ...

  8. 单片机stm32零基础入门之--初识STM32 标准库

    CMSIS 标准及库层次关系 因为基于Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难.为了解决不同的芯片厂商生产的Co ...

  9. 洛谷 P2120 [ZJOI2007] 仓库建设

    链接: P2120 题意: 有 \(n\) 个点依次编号为 \(1\sim n\).给出这 \(n\) 个点的信息,包括位置 \(x_i\),所拥有的的物品数量 \(p_i\),在此建设一个仓库的费用 ...

  10. SkyWalking部署及.Net Core简单使用

    SkyWalking官方网站非常详细,以下只是本人学习过程的整理 一.SkyWalking简介 1.概念 SkyWalking是分布式系统的应用程序性能监视工具,专为微服务.云原生架构而设计 SkyW ...