3

是否可以在没有 web.config 的情况下仅在 IISExpress 上托管静态文件?

我有一个 html5 应用程序原型(没有服务器端代码),我想在 IISExpress Webserver 上托管网站,因为有一些 json 文件模拟了我使用 AJAX 访问的 REST-API。

有一个 main.html 文件和一些 api/data.json 文件。

当我创建一个 VS 项目时,一切正常。

我删除了所有配置和 VS 相关文件,并手动添加了站点

appcmd add site /name:"HTMLStandalone" /bindings:http/*:56668 /physicalPath:"C:\Users\me\somefoler\myapp"

更新:工作正常,它会在 applicationhost.config 中产生以下条目

<site name="HTMLStandalone" id="4">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="C:\Users\me\somefolder\myapp" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:56668" />
                </bindings>
            </site>

当我启动网站时

 iisexpress.exe /site:HTMLStandalone

该过程失败:

Failed to translate binding to url prefix *:56668
Registration completed for site "HTMLStandalone"
Failed to process sites
Report ListenerChannel stopped due to failure; ProtocolId:http, ListenerChannelI
d:0
HostableWebCore activation failed.

是否可以只托管没有 web.config 的静态文件?

4

2 回答 2

0

web.config 文件不是强制性的。看来您的 appcmd.exe 命令有点不对劲...改为运行以下命令

appcmd 添加站点 /name:"HTMLStandalone" /bindings: http/*:56668: /physicalPath:"C:\Users\me\somefoler\myapp"

请注意,要运行此站点,您必须以管理员身份运行。如果要以非管理员身份运行,请运行以下命令

appcmd 添加站点 /name:"HTMLStandalone" /bindings: http/*:56668:localhost /physicalPath:"C:\Users\me\somefoler\myapp"

于 2012-10-13T15:36:43.553 回答
0

来自 iis.net 网站

您还可以使用 /path 选项直接从文件夹运行站点。此选项适用于任何类型的应用程序,包括静态 HTML、ASP.NET、PHP 和 WCF。默认情况下,IIS Express 将在http://localhost:8080/. 对于托管网站,例如 ASP.NET,IIS Express 将使用 .NET 4.0。您可以使用 /port 和 /clr 选项来覆盖这些默认值。

就我而言,这还不够。/path 和 /config 标志不可组合。我想要一个自定义的 applicationhost.config 文件(为了添加 json 和 text/cache-manifest 的 mime-extensions)

当前的解决方案是添加绑定:http/*:56668: localhost

或者,要使站点在(本地)网络上可用,您可以使用 pc/服务器的 dns 名称,例如 bindings:http://*:56668: my-pc

于 2012-10-18T11:02:12.920 回答