2012-09-19 41 views
2

是否可以在沒有web.config的情況下在IISExpress上託管靜態文件?使用IIS Express的主機靜態網站

我有一個html5應用程序原型(沒有服務器端代碼),我想在IISExpress Web服務器上託管網站,因爲有幾個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" 

UPDATE手動添加該網站:做工精細,它導致了對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的情況下託管靜態文件?

回答

0

web.config文件不是必需的。看來你APPCMD.exe命令,是小關...運行下面的命令來代替

APPCMD添加網站/名稱: 「HTMLStandalone」/綁定:HTTP/*:56668:/physicalPath:「C:\用戶\ me \ somefoler \ myapp「

請注意,要運行此網站,您必須以管理員身份運行。如果你想運行的非管理員,運行以下命令

APPCMD添加網站/名稱: 「HTMLStandalone」/綁定:HTTP/*:56668:本地主機/physicalPath:「C:\用戶\我\ somefoler \ MYAPP」

+0

感謝您的評論,但appcmd語法正常,因爲它在applicationhost.config中生成了正確的條目(請參閱更新) – LukeSolar

+0

當我添加:localhost標誌,就像你的第二個例子一樣!但我以管理員身份在cmd窗口中運行iisexpress.exe。有任何想法嗎? – LukeSolar

0

從iis.net網站

您也可以使用/路徑選項直接從 文件夾中運行的站點。此選項適用於任何類型的應用程序,包括 靜態HTML,ASP.NET,PHP和WCF。默認情況下,IIS Express將在​​上運行 站點。對於託管網站,例如 ASP.NET,IIS Express將使用.NET 4.0。您可以使用/ port和/ clr 選項來覆蓋這些默認值。

在我的情況下,這還不夠。/path和/ config標誌不可組合。我想自定義ApplicationHost.config文件(以添加MIME-extenstions對JSON和文本/緩存清單)

目前的解決辦法是添加綁定:HTTP/*:56668:本地主機

另外,爲了使網站在(本地)網絡上可用,你可以使用你的電腦/服務器的DNS名稱,例如綁定:http:/ *:56668:my-pc

相關問題