![](/img/trans.png)
[英]How to setup web app connection so that I can run them locally in IIS express and in the Auzure cloud
[英]How do you setup an IIS Web App so it can access a network share without an AD?
我有三個Windows Server 2012 R2,而DMZ網絡中沒有任何AD。 兩台服務器是具有ASP.NET的前端Web服務器,一台具有SQL Server和網絡共享,兩台前端服務器均使用這些網絡共享數據。
我的問題是如何配置應用程序池標識和網絡共享,以便ASP.NET應用程序可以讀寫網絡共享?
當您可以將域帳戶用作應用程序池標識但此設置中沒有可用的AD時,這很簡單,並且可用AD。
自成功安裝服務器以來,我將回答自己的問題。 這是我所做的:
1)在所有三台服務器上創建一個具有相同用戶名和密碼的帳戶。 確保沒有過期或必須更改。
2)創建一個網絡共享,並賦予新帳戶讀/寫權限。 我還測試了可以使用新帳戶從前端服務器進行連接,以驗證是否沒有防火牆。
3)將用戶包括在IIS_IUSRS組中,該用戶間接授予其“作為批處理作業”登錄的權限。
4)運行以下命令向用戶授予權限
aspnet_regiis -ga <your_app_pool_user>
查看更多: 如何:為ASP.NET 2.0應用程序(MSDN)創建服務帳戶
5)重新啟動WAS和IIS,以確保如果嘗試使用帳戶,則對帳戶組成員身份所做的更改將被保留。
C:> net stop was /y
C:> net start w3svc
6)創建一個應用程序池並設置標識。
這是我嘗試設置身份時遇到錯誤消息的地方。
從IIS管理器中,我收到以下錯誤對話框:“執行此操作時出錯。詳細信息:值不在預期范圍內。”
嘗試從命令行設置應用程序池標識時,我收到類似的錯誤:
C:> appcmd set config /section:applicationPools
/[name='test-pool'].processModel.identityType:SpecificUser
/[name='test-pool'].processModel.userName:MyAccountName
/[name='test-pool'].processModel.password:P@ssw0rd
ERROR ( hresult:80070057, message:Failed to commit configuration changes.
The parameter is incorrect.
)
當我刪除最后一個參數password時,該命令將成功更改身份類型並設置用戶名,但是我一直沒有弄清楚為什么不能設置密碼,因此我拒絕直接編輯applicationHost.config文件。 不幸的是,密碼以明文結尾。
<configuration>
...
<system.applicationHost>
<applicationPools>
...
<add name="test-pool" managedRuntimeVersion="v4.0">
<processModel identityType="SpecificUser"
userName="MyAccountName" password="P@ssw0rd" />
</add>
...
</applicationPools>
...
</system.applicationHost>
...
</configuration>
7)最后,我將Web應用程序設置為使用該應用程序,它可以毫無問題地訪問Network Share。
我遇到了同樣的問題,但是不能讓密碼以明文形式顯示,因此我進一步進行了深入研究,發現了本文: http : //social.technet.microsoft.com/wiki/contents/articles/30344.custom-iis-應用程序池身份值此結果不下落在之內的預期,range.aspx
診斷的關鍵步驟是查看正確的事件:
為了弄清楚如何解決此問題,我進入了事件查看器。 應用程序日志中沒有任何內容,因此我轉到應用程序和服務日志=> Microsoft => Windows => IIS-Configuration。 默認情況下,此處的日志處於禁用狀態,因此必須將其啟用。 (為此,請右鍵單擊日志,然后選擇“啟用日志”。)啟用后,重新運行嘗試以設置標識,並刷新視圖(“操作”窗格或F5),瞧!,現在我們有了更多信息。關於錯誤。 結果是兩個錯誤(事件ID 42和43)。
我有與文章相同的事件錯誤:
ID 42:無法在“ \\?\\ C:\\ windows \\ system32 \\ inetsrv \\ config \\ applicationHost.config”中初始化“ IISWASOnlyAesProvider”加密提供程序。 請檢查您的配置。
ID 43:無法加密屬性“ Microsoft.ApplicationHost.AesProtectedConfigurationProvider”。
然后我做了以下工作:
c:\\windows\\System32\\inetsrv\\config
) <configProtectedData><providers>
部分(在c:\\windows\\System32\\inetsrv\\config\\applicationHost.config
) 然后,我可以再次為應用程序池設置自定義身份。
有類似的問題。 重新安裝IIS管理器並獲得一個新的applicationHost.config。當我在新舊文件上執行WinDiff時,我注意到SessionKey是不同的。 現在可以使用。 AesProvider和IISWASOnlyAesProvider
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.