2017-09-20 106 views
0

我使用IIS Expressappcmd.exe工具安裝我的軟件的過程中添加了一個網站,IIS Express外的所有用戶,就像這樣:添加網站到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中「全局」(針對所有用戶)註冊一個網站嗎?任何其他想法來解決這個問題?

回答

0

那麼,我找到了一個解決方案。首先,我讓位於模板配置文件的副本:

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,但不幸的是項目經理堅持自包含的軟件包。

+0

iis express是一款開發服務器,不適用於生產用途。您可能需要考慮自託管。 –

+0

Hostable Web Core(HWC)是自承載技術。它也是一個可怕的安全情況,以運行一個Web服務器作爲本地系統。 –

+0

@ErikFunkenbusch:不幸的是,使用DotNetCore這個「新」版本的框架,自託管僅僅是一種選擇(就我所知,如果我錯了,請糾正我)。這個WebApp依賴於一些不兼容DotNetCore的組件(例如:SignalR)。至於HWC:在快速閱讀文檔之後,它似乎針對C++應用程序......這是一個用C#編寫的ASP.net MVC WebApp。我不認爲HWC會在這裏幫助。 –