簡體   English   中英

如何設置IIS Web應用程序,使其無需AD即可訪問網絡共享?

[英]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”。

然后我做了以下工作:

  • 恢復舊版本的ConfigEncKey.key文件(到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM