【问题标题】:Adding a website to IIS Express for all users为所有用户添加网站到 IIS Express
【发布时间】:2017-09-20 10:16:10
【问题描述】:

在我的软件安装过程中,我正在使用IIS Expressappcmd.exe 工具将网站添加到 IIS Express,如下所示:

appcmd.exe add site /name:MySite /physicalPath:"C:\Program Files\MySite" /bindings:http://*:8087/

这可以正常工作,并且该站点被添加到 IIS Express。

问题是,我稍后需要从属于我的应用程序一部分的 Windows 服务通过命令行启动 IIS Express。我正在使用以下命令:

iisexpress.exe /site:MySite

但是,从 Windows 服务启动的命令显然是问题所在。服务在 SYSTEM 帐户下运行,而站点是在安装时从安装程序添加的,该安装程序在当前登录用户的帐户下运行。因此,当我尝试使用以下命令列出网站时:

appcmd.exe list site

我收到以下错误:

ERROR ( message:Configuration error 
Filename: \\?\C:\WINDOWS\system32\config\systemprofile\Documents\IISExpress\config\applicationHost.config
Line Number: 0
Description: Cannot read configuration file. )

有没有办法解决这个问题?我可以在 IIS Express 中“全局”(针对所有用户)注册网站吗?解决这个问题还有其他想法吗?

【问题讨论】:

  • 我遇到了同样的错误 (Cannot read configuration file.),当我用单反斜杠替换路径名中的双反斜杠时解决了这个错误(例如 D:\webroot\\applicationhost.config -> D:\webroot\applicationhost.config

标签: c# iis windows-services iis-express


【解决方案1】:

嗯,我找到了解决办法。首先,我复制位于以下位置的模板配置文件:

C:\Program Files\IIS Express\config\templates\PersonalWebServer\applicationhost.config

然后,我调用 appcmd 传入我的专用 .config 文件,而不是使用默认的共享文件,方法是将以下(未记录的?)参数添加到 appcmd 命令行:

/AppHostConfig:"C:\path\to\my\applicationhost.config"

当我调用 iisexpress.exe 启动网站时,我还添加:

/config:"C:\path\to\my\applicationhost.config"

这似乎运作良好。

PS:我知道“正确”的解决方案是使用完整的 IIS,但不幸的是项目经理坚持使用独立包。

【讨论】:

  • iis express 是一个开发服务器,不适合生产使用。您可能需要考虑自托管。
  • Hostable Web Core (HWC) 是自托管技术。将 Web 服务器作为本地系统运行也是一种可怕的安全状况。
  • @ErikFunkenbusch:不幸的是,自托管只是框架的“新”版本 DotNetCore 的一种选择(据我所知,如果我错了,请纠正我)。此 WebApp 依赖于一些尚未与 DotNetCore 兼容的组件(例如:SignalR)。至于 HWC:在快速阅读文档后,它似乎针对 C++ 应用程序......这是一个用 C# 编写的 ASP.net MVC WebApp。我不认为 HWC 在这里会有所帮助。
  • 这里有很多东西。首先,signalr 可用于 dotnetcore。 github.com/aspnet/SignalR - 但您可以使用任何语言的可托管核心。 weblogs.asp.net/ricardoperes/hosting-http-resources
  • 是的,HWC 可以托管完整的 .net C# MVC Web 应用程序。另外,你做了很多假设。您当然可以通过 dotnetcore 2.0 应用程序使用许多完整的 .net 库。它有效,我已经做到了。但是,这取决于库。但我并不是建议您转向 dotnetcore,只是反驳您对此的错误假设。使用完整的 .net,有很多选择。
猜你喜欢
  • 2011-09-18
  • 2017-07-22
  • 2017-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
相关资源
最近更新 更多