Windows嵌入式开发环境搭建:站点配置与权限设置指南
|
我原以为WinCE6的IIS精简版还能扛住站点权限那套老逻辑——结果点开applicationHost.config才发现,它连节点都得手动塞进去,塞完还报“配置节已锁定”,你猜怎么着?不是因为admin组没加进IIS_IUSRS,是注册表里HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters\\EnableConfigIsolation被硬编码关死了。这玩意儿2025年7月还在出厂默认关着,我对着工控机外壳敲了三下,它散热风扇突然停了半秒又嗡地重启,跟诈尸一样。 王工昨天把service account设成LocalSystem,说“省事”,结果站点一启就弹出三条UAC虚框,全卡在“正在验证凭据…”那个灰底白字的窗口上。他盯着屏幕嚼薯片,咔嚓咔嚓,碎屑掉进键盘F键缝里。我没拦。三小时后他用串口连上板子抓日志,发现ntfs.sys在读取C:\\Inetpub\\wwwroot\\web.config时直接跳过ACL校验,返回ERROR_SUCCESS——不是权限不够,是根本没查。我说这算优胜劣汰?他吐掉最后一片薯片渣:“淘汰的是谁?是还信‘NTFS权限链路完整’这句鬼话的人。” 浏览器开了二十七个标签页。其中十九个是不同版本的MSDN存档快照,三个是Bing搜索“Windows Embedded Standard 7 IIS7.5 permission bug”,剩下五个全是同一个错误码:0x80070005。但最绝的是,我手边这台测试机右下角系统托盘里,Windows Time服务图标一直在闪红,闪了整整十八秒,然后自己好了。我没动它。监控大屏就在头顶,左上角那块一直闪,不是蓝屏死机那种闪,是像素点间歇性丢帧,像老式CRT显示器接触不良。我抬头看了三次,它第三次闪的时候,李姐端着保温杯从门口经过,杯盖拧太紧,她用门框边缘磕了一下才拧开,水泼出来一点,在不锈钢门框上画了道湿痕。 说权限设置,就得提SDDL字符串。你们知道吗?在Embedded POSReady 2009里,icacls /setowner Administrator C:\\Inetpub\\wwwroot 命令跑完,它真会改OWNER,但IIS管理器里刷新出来的ACL列表里,“Administrators”组后面永远挂着个括号(仅继承)。可你点开高级属性,又确实显示“此处应用”。这事儿我敢打包票——不是缓存没刷,是w3svc.dll在解析ACE的时候,跳过了所有SID为空的访问控制项,而POSReady的ACL生成器偏爱把继承标记写进SID空字段里。但为什么?没人改源码,也没人补丁,就是放着。这就叫优胜劣汰:活下来的,是那些习惯手动把web.config里的password字段删掉再重启AppPool的人。 刘总监上周非让我给客户演示“零信任嵌入式站点部署”,我掏出U盘插进那台刚刷好Win10 IoT Enterprise LTSC 2021的研华板子,结果Secure Boot开关焊死了,BIOS里找不到TPM2.0选项。我当场拆机壳,他站在三米外举手机录像,拍到我左手食指关节蹭掉一块漆,露出发黑的铝基板。后来演示改成了——看PPT第十七页,动画模拟ACL传播路径。他鼓掌。掌声落下去的时候,窗外天黑了,楼下一排共享单车警报器集体响了一声,短促,像叹气。 其实最荒诞的是站点绑定。host header配localhost没问题,配127.0.0.1没问题,但你只要在hosts文件里加一行“192.168.1.200 demo.internal”,然后在IIS里绑这个IP+host header,它就拒收所有POST请求,GET能过,OPTIONS也能过,偏偏POST在kernel32!WriteFile里直接return FALSE。我没深挖。我只记得去年十二月有个兄弟为此通宵,最后把网卡驱动回滚到2019年的版本,好了。但他没告诉任何人,只是默默删了Teams频道里所有带“post-body-loss”的聊天记录。我后来在回收站看见压缩包名:post_bug_fix_idea.zip,点开里面是张Excel截图,表头写着“建议方案”,内容栏空白。这种事,我说不准是设计如此,还是某次热更新打歪了分支。
文章配图,仅供参考 现在我电脑旁边堆着四本纸质手册,两本是微软2013年印的《Windows Embedded Compact 7 Application Development》,另两本是东芝工控模块附赠的《IEC62443合规调试注释》,封底都沾了咖啡渍,深褐色,一圈一圈,不规则。它们共同指向一件事:所有声称“开箱即用”的嵌入式Windows Web环境,都在用一个事实自我辩护——真正活下来的应用,早就不走IIS那一套流程了。要么直接上Mini-HTTPD裸跑,要么干脆把HTML全打进ROM里用资源DLL加载。我桌上那盒速溶咖啡快见底了,底下压着张便签,字是我写的:“下次,试试用PowerShell脚本启动WebListener类,绕过整个IIS服务宿主……”还没写完,有人推门进来问:“张工,客户问,能不能让IE8支持WebSocket……” 我没答。他手机刚好收到一条告警短信,嗡一声,比工控机风扇停转那声还脆。 就这样吧。我待会儿去楼下买烟,顺便看看自动售货机有没有卖带磁吸底座的USB-C扩展坞——毕竟明天得给新板子烧固件,得插至少六根线,还不能晃。 (编辑:PHP编程网 - 金华站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |





浙公网安备 33038102330481号