asp.net网站在IIS部署时,获取注册表键值为空,调试时有值

kw13202 2016-03-29 05:35:21
因为字体ttf文件比较大,不想加入发布包中,所以想直接从Windows字库中直接读取,于是访问注册表确定字库路径,在VS调试时正常获取到值,但部署到IIS后,就死活无法获取到了,请问是什么原因造成?
...全文
144 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jingshaohui 2016-03-30
  • 打赏
  • 举报
回复
引用 8 楼 kw13202 的回复:
原因已找到,就是IIS没有访问注册表权限,http://q.cnblogs.com/q/80892/,手动添加IIS权限后,可以读取。 早上我写了几个Demo测试过了,通过asp.net程序没法获取注册表权限,在没有读权限,访问注册表就是返空,大概是微软为了安全性考虑,禁止了相关操作,此贴终结
那就好
kw13202 2016-03-30
  • 打赏
  • 举报
回复
原因已找到,就是IIS没有访问注册表权限,http://q.cnblogs.com/q/80892/,手动添加IIS权限后,可以读取。 早上我写了几个Demo测试过了,通过asp.net程序没法获取注册表权限,在没有读权限,访问注册表就是返空,大概是微软为了安全性考虑,禁止了相关操作,此贴终结
jingshaohui 2016-03-30
  • 打赏
  • 举报
回复
引用 5 楼 kw13202 的回复:
其实就是IIS无法获取到 [quote=引用 3 楼 jingshaohui 的回复:] [quote=引用 2 楼 kw13202 的回复:] [quote=引用 1 楼 jingshaohui 的回复:] 本地环境和IIS环境安全策略等不一致,IIS和服务器安全策略等不一致,告诉你,本地调试仅供参考
IIS就是本机,还没到服务器...[/quote] IIS是本地服务器,我说的服务器是远程的,或者说是可以在互联网上的(已发布的)。你在本机上的程序应该没有挂在IIS上吧,建议将你的程序挂在IIS上后再调试,那时候根据断点跟踪出的异常,有目的的进行解决。服务器环境情况下,文件的上传下载以及对客户端的一些修改等等情况为了安全起见很多都会被限制,而且在本机是管理员权限在服务器上就不一定是了。 此外,你说的IIS是本机的情况只是程序搭载到本地IIS上,但是IIS其实是可以作为服务器用的,默认的安全策略与配置,很多都是跟着服务起来的。 况且,你写的路径在本地可以用不代表在IIS上可以用,IIS更多支持的是虚拟路径,不会直接访问盘符什么的,不知道你的路径怎么写,我也不好说,反正要知道IIS和服务器上不管是用绝对路径还是相对路径,除非访问目标就在项目下,否则基本都会出问题。[/quote] 挂载IIS调试就是空值,原因是IIS没有访问注册表的权限[/quote] 那你到百度上搜一下就知道了,我查了一下,关于IIS的解决注册表访问权限的挺多,而且看起来都不是很复杂。
kw13202 2016-03-30
  • 打赏
  • 举报
回复
引用 4 楼 lutaotony 的回复:
可以先在本地的IIs上面部署,并调试,看看是否有异常
挂载IIS调试就是空值,原因是IIS没有访问注册表的权限
kw13202 2016-03-30
  • 打赏
  • 举报
回复
其实就是IIS无法获取到
引用 3 楼 jingshaohui 的回复:
[quote=引用 2 楼 kw13202 的回复:] [quote=引用 1 楼 jingshaohui 的回复:] 本地环境和IIS环境安全策略等不一致,IIS和服务器安全策略等不一致,告诉你,本地调试仅供参考
IIS就是本机,还没到服务器...[/quote] IIS是本地服务器,我说的服务器是远程的,或者说是可以在互联网上的(已发布的)。你在本机上的程序应该没有挂在IIS上吧,建议将你的程序挂在IIS上后再调试,那时候根据断点跟踪出的异常,有目的的进行解决。服务器环境情况下,文件的上传下载以及对客户端的一些修改等等情况为了安全起见很多都会被限制,而且在本机是管理员权限在服务器上就不一定是了。 此外,你说的IIS是本机的情况只是程序搭载到本地IIS上,但是IIS其实是可以作为服务器用的,默认的安全策略与配置,很多都是跟着服务起来的。 况且,你写的路径在本地可以用不代表在IIS上可以用,IIS更多支持的是虚拟路径,不会直接访问盘符什么的,不知道你的路径怎么写,我也不好说,反正要知道IIS和服务器上不管是用绝对路径还是相对路径,除非访问目标就在项目下,否则基本都会出问题。[/quote] 挂载IIS调试就是空值,原因是IIS没有访问注册表的权限
lutaotony 2016-03-30
  • 打赏
  • 举报
回复
可以先在本地的IIs上面部署,并调试,看看是否有异常
jingshaohui 2016-03-30
  • 打赏
  • 举报
回复
引用 2 楼 kw13202 的回复:
[quote=引用 1 楼 jingshaohui 的回复:] 本地环境和IIS环境安全策略等不一致,IIS和服务器安全策略等不一致,告诉你,本地调试仅供参考
IIS就是本机,还没到服务器...[/quote] IIS是本地服务器,我说的服务器是远程的,或者说是可以在互联网上的(已发布的)。你在本机上的程序应该没有挂在IIS上吧,建议将你的程序挂在IIS上后再调试,那时候根据断点跟踪出的异常,有目的的进行解决。服务器环境情况下,文件的上传下载以及对客户端的一些修改等等情况为了安全起见很多都会被限制,而且在本机是管理员权限在服务器上就不一定是了。 此外,你说的IIS是本机的情况只是程序搭载到本地IIS上,但是IIS其实是可以作为服务器用的,默认的安全策略与配置,很多都是跟着服务起来的。 况且,你写的路径在本地可以用不代表在IIS上可以用,IIS更多支持的是虚拟路径,不会直接访问盘符什么的,不知道你的路径怎么写,我也不好说,反正要知道IIS和服务器上不管是用绝对路径还是相对路径,除非访问目标就在项目下,否则基本都会出问题。
kw13202 2016-03-29
  • 打赏
  • 举报
回复
引用 1 楼 jingshaohui 的回复:
本地环境和IIS环境安全策略等不一致,IIS和服务器安全策略等不一致,告诉你,本地调试仅供参考
IIS就是本机,还没到服务器...
jingshaohui 2016-03-29
  • 打赏
  • 举报
回复
本地环境和IIS环境安全策略等不一致,IIS和服务器安全策略等不一致,告诉你,本地调试仅供参考

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧