在 IIS 上的 WebAPI 中访问被拒绝的命名管道
Posted
技术标签:
【中文标题】在 IIS 上的 WebAPI 中访问被拒绝的命名管道【英文标题】:access denied named pipes in WebAPI on IIS 【发布时间】:2020-10-09 01:58:09 【问题描述】:为了控制 Windows 服务(和其他一些东西),我们使用 WebAPI。对于 API 和 Windows 服务之间的通信,我使用了 NampedPipe。当我在 Visual Studio 中运行代码时,一切正常。将 api 部署到 IIS 后,它得到一个 IO 异常access denied
。这是配置问题还是无法从 IIS API 访问 NamedPipes?
不同的方法可以做什么? ip连接?
感谢您的帮助!
编辑:
经过一些研究和尝试和错误,我得出结论:要让 NamedPipes 工作,两个进程必须在同一用户下运行。 因此,我为服务和 iis 网站分配了同一个用户,并尝试了一下,它成功了。
在不同用户的 iis 上运行网站是否安全?
【问题讨论】:
您可以尝试在 URLACL 中注册端口。netsh http add urlacl ....
【参考方案1】:
在 IIS express 中激活应用程序 当您在开发环境中调试应用程序时。在 IIS express 中,您当前的登录用户用于执行应用程序。
但是,当您在 IIS 中部署应用程序时,所有内容都由应用程序池标识执行并在会话 0 中隔离。
所以大多数时候,您可以尝试将应用池标识设置为本地系统。
由于本地系统授予应用程序过多的权限,使用专用帐户来托管您的 IIS 应用程序是个好主意。
只要你遵循最少权限原则,为你的网站使用不同的用户就可以安全了。
【讨论】:
以上是关于在 IIS 上的 WebAPI 中访问被拒绝的命名管道的主要内容,如果未能解决你的问题,请参考以下文章