在前一个文章中,我完成了一个SharedMemory的类.用于使用Win32 的内存映射文件.
写此类的目的在于这几天遇到的一个问题.
一个EXE程序和一个ASP.NET程序,之间要进行数据交换.
1,不想使用.NET Remoting
2,不想使用共享文件的方式(速度太慢了)
3,WebService更麻烦(速度更慢).
4,不知道别的方法了..
所以当时就找使用Win32 API的内存映射的方法.
当我在两个EXE程序中使用此类的时候,一切是正常的.
而且,在ASP.NET中,一个页面用来向此内存映射文件中写数据,另一个页面来读数据.可以正常使用.
但是,一个ASP.NET页面,一个EXE程序,EXE程序创建的内存映射文件,ASP.NET中不能得到(即Open函数返回的结果为0).反过来,也是一样的...
---一个奇怪的问题:(
想了半天,使用API的函数没有错.是不是ASP.NET的用户权限的问题呢??
直接在IIS中修改此ASP.NET工程的登陆帐号为Administrators组的,再运行,还是不行:(
.........
看来是没戏了...
(不可能的啊.别的API函数都可以使用啊.为什么这个不行呢??,,,难道还是权限的问题?)
IIS提供了一个功能,就是帐号模拟.
通过这个功能,我们可以设定运行此ASP.NET页面的帐号信息.
默认情况下面,这个功能是关闭的.
要开启这个功能,只要简单的在Web.Config中增加这个条目:
<identity impersonate="true" />

在这种情况下,用户身份的认证交给IIS来进行。当允许匿名登录时,IIS将一个匿名登录使用的标识(缺省情况下是IUSR_MACHINENAME)交给ASP.NET应用程序。
当不允许匿名登录时,IIS将认证过的身份标识传递给ASP.NET应用程序。ASP.NET的具体访问权限由该账号的权限决定。
或是,使用这个来直接指定帐号:
<identity impersonate="true" userName="accountname" password="password" />

通过这个方式,我们指定由Administrators组的成员登陆,就可以正常读写其它EXE创建的内存映射文件了:)
注: 参考信息: http://www.microsoft.com/China/Community/program/originalarticles/TechDoc/impersonation.mspx
写此类的目的在于这几天遇到的一个问题.
一个EXE程序和一个ASP.NET程序,之间要进行数据交换.
1,不想使用.NET Remoting
2,不想使用共享文件的方式(速度太慢了)
3,WebService更麻烦(速度更慢).
4,不知道别的方法了..
所以当时就找使用Win32 API的内存映射的方法.
当我在两个EXE程序中使用此类的时候,一切是正常的.
而且,在ASP.NET中,一个页面用来向此内存映射文件中写数据,另一个页面来读数据.可以正常使用.
但是,一个ASP.NET页面,一个EXE程序,EXE程序创建的内存映射文件,ASP.NET中不能得到(即Open函数返回的结果为0).反过来,也是一样的...
---一个奇怪的问题:(
想了半天,使用API的函数没有错.是不是ASP.NET的用户权限的问题呢??
直接在IIS中修改此ASP.NET工程的登陆帐号为Administrators组的,再运行,还是不行:(
.........
看来是没戏了...
(不可能的啊.别的API函数都可以使用啊.为什么这个不行呢??,,,难道还是权限的问题?)
IIS提供了一个功能,就是帐号模拟.
通过这个功能,我们可以设定运行此ASP.NET页面的帐号信息.
默认情况下面,这个功能是关闭的.
要开启这个功能,只要简单的在Web.Config中增加这个条目:


在这种情况下,用户身份的认证交给IIS来进行。当允许匿名登录时,IIS将一个匿名登录使用的标识(缺省情况下是IUSR_MACHINENAME)交给ASP.NET应用程序。
当不允许匿名登录时,IIS将认证过的身份标识传递给ASP.NET应用程序。ASP.NET的具体访问权限由该账号的权限决定。
或是,使用这个来直接指定帐号:


通过这个方式,我们指定由Administrators组的成员登陆,就可以正常读写其它EXE创建的内存映射文件了:)
注: 参考信息: http://www.microsoft.com/China/Community/program/originalarticles/TechDoc/impersonation.mspx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix