IIS ਡਿਪਲਾਇਮੈਂਟ ਵਿੱਚ ਕੌਂਫਿਗਰੇਸ਼ਨ ਗਲਤੀ ਨੂੰ ਸਮਝਣਾ
Blazor ਪ੍ਰੋਜੈਕਟ ਨੂੰ IIS ਵਿੱਚ ਤੈਨਾਤ ਕਰਨਾ ਇੱਕ ਨਿਰਵਿਘਨ ਪ੍ਰਕਿਰਿਆ ਹੋ ਸਕਦੀ ਹੈ, ਪਰ ਕਈ ਵਾਰ ਤਰੁੱਟੀਆਂ ਪੈਦਾ ਹੋ ਜਾਂਦੀਆਂ ਹਨ ਜਿਨ੍ਹਾਂ ਦਾ ਨਿਦਾਨ ਕਰਨਾ ਮੁਸ਼ਕਲ ਹੋ ਸਕਦਾ ਹੈ। ਡਿਵੈਲਪਰਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰਨ ਵਾਲੀ ਇੱਕ ਆਮ ਸਮੱਸਿਆ ਹੈ ਗਲਤੀ 500.19, ਜੋ ਆਮ ਤੌਰ 'ਤੇ ਸੰਰਚਨਾ ਪੰਨੇ ਨਾਲ ਸਮੱਸਿਆ ਦਾ ਸੰਕੇਤ ਕਰਦਾ ਹੈ। ਇਹ ਗਲਤੀ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਰੋਕਦੀ ਹੈ।
ਗਲਤੀ 500.19 ਆਮ ਤੌਰ 'ਤੇ ਵਿੱਚ ਗਲਤ ਸੰਰਚਨਾ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀ ਹੈ web.config ਫਾਈਲ, ਪਰ ਇਸਦੀ ਸਮੀਖਿਆ ਕਰਨ ਤੋਂ ਬਾਅਦ ਵੀ, ਗਲਤੀ ਜਾਰੀ ਰਹਿ ਸਕਦੀ ਹੈ। ਇਹ ਸਥਿਤੀ ਨਿਰਾਸ਼ਾਜਨਕ ਹੋ ਸਕਦੀ ਹੈ ਜਦੋਂ ਸੰਰਚਨਾ ਵਿੱਚ ਕੁਝ ਵੀ ਗਲਤ ਨਹੀਂ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਬਲੇਜ਼ਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਸਮੇਂ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਅਕਸਰ ਇਸਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈਂਦਾ ਹੈ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਗਲਤੀ ਸੁਨੇਹਾ ਅਸਪਸ਼ਟ ਲੱਗਦਾ ਹੈ।
ਕੌਂਫਿਗਰੇਸ਼ਨ ਮੁੱਦਿਆਂ ਤੋਂ ਇਲਾਵਾ, ਸਰਵਰ 'ਤੇ ਅੰਡਰਲਾਈੰਗ ਅਨੁਮਤੀ ਸਮੱਸਿਆਵਾਂ ਜਾਂ ਗੁੰਮ ਹੋਏ ਭਾਗ ਹੋ ਸਕਦੇ ਹਨ। ਉਦਾਹਰਨ ਲਈ, IIS ਅਨੁਮਤੀਆਂ ਜਾਂ ਗਲਤ ਢੰਗ ਨਾਲ ਕੌਂਫਿਗਰ ਕੀਤੇ ਵਾਤਾਵਰਣ ਨਾਲ ਸਮੱਸਿਆਵਾਂ ਵੀ ਇਸ ਗਲਤੀ ਨੂੰ ਟਰਿੱਗਰ ਕਰ ਸਕਦੀਆਂ ਹਨ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ ਸਾਰੇ ਲੋੜੀਂਦੇ ਮੋਡੀਊਲ ਅਤੇ ਅਨੁਮਤੀਆਂ ਮੌਜੂਦ ਹਨ, ਸਫਲਤਾਪੂਰਵਕ ਤੈਨਾਤੀ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।
ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਉਹਨਾਂ ਕਦਮਾਂ ਦੀ ਪੜਚੋਲ ਕਰਾਂਗੇ ਜੋ ਤੁਸੀਂ ਸਮੱਸਿਆ ਦੇ ਨਿਪਟਾਰੇ ਲਈ ਚੁੱਕ ਸਕਦੇ ਹੋ ਗਲਤੀ 500.19 ਅਤੇ ਸੰਰਚਨਾ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰੋ। web.config ਫਾਈਲ ਦੀ ਜਾਂਚ ਕਰਕੇ, ਅਨੁਮਤੀਆਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰਕੇ, ਅਤੇ ਸਰਵਰ ਦੇ ਵਾਤਾਵਰਣ ਦੀ ਜਾਂਚ ਕਰਕੇ, ਤੁਸੀਂ ਮੁੱਦੇ ਦੇ ਮੂਲ ਕਾਰਨ ਦਾ ਪਤਾ ਲਗਾ ਸਕਦੇ ਹੋ।
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
<aspNetCore> | ਇਹ ਟੈਗ ASP.NET ਕੋਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਖਾਸ ਹੈ ਅਤੇ web.config ਫਾਈਲ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਿਵੇਂ ਕਿ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਦਾ ਮਾਰਗ, ਲੌਗਿੰਗ ਸੰਰਚਨਾ, ਅਤੇ ਹੋਸਟਿੰਗ ਮਾਡਲ (ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਜਾਂ ਪ੍ਰਕਿਰਿਆ ਤੋਂ ਬਾਹਰ)। ਇਹ ਬਲੇਜ਼ਰ ਸਰਵਰ-ਸਾਈਡ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ IIS ਵਿੱਚ ਏਕੀਕਰਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। |
stdoutLogEnabled | ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ, |
icacls | ਇੱਕ ਵਿੰਡੋਜ਼ ਕਮਾਂਡ ਜੋ ਫਾਈਲ ਸਿਸਟਮ ਅਨੁਮਤੀਆਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਸੰਦਰਭ ਵਿੱਚ, ਇਸਦੀ ਵਰਤੋਂ IIS_IUSRS ਸਮੂਹ ਨੂੰ ਲੋੜੀਂਦੀਆਂ ਪੜ੍ਹਨ/ਲਿਖਣ ਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਦੇਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ Blazor ਐਪ ਨੂੰ ਲੋੜੀਂਦੀਆਂ ਡਾਇਰੈਕਟਰੀਆਂ ਤੱਕ ਪਹੁੰਚ ਹੈ। |
Install-WindowsFeature | ਇਹ PowerShell ਕਮਾਂਡ ਵਿੰਡੋਜ਼ ਸਰਵਰ 'ਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸਥਾਪਿਤ ਕਰਦੀ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਹ IIS ਭਾਗਾਂ ਨੂੰ ਸਥਾਪਤ ਕਰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ AspNetCoreModuleV2, ਜੋ ਕਿ IIS 'ਤੇ ASP.NET ਕੋਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ ਲੋੜੀਂਦਾ ਹੈ। |
Get-WebGlobalModule | ਇਹ PowerShell ਕਮਾਂਡ WebAdministration ਮੋਡੀਊਲ ਦਾ ਹਿੱਸਾ ਹੈ ਅਤੇ IIS ਵਿੱਚ ਉਪਲਬਧ ਸਾਰੇ ਗਲੋਬਲ ਮੋਡੀਊਲ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਦੀ ਹੈ। ਇੱਥੇ ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਵਰਤਿਆ ਗਿਆ ਹੈ ਕਿ AspNetCoreModuleV2 ਸਥਾਪਤ ਹੈ, ਜੋ ਕਿ IIS 'ਤੇ ਬਲੇਜ਼ਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ। |
AreAccessRulesProtected | ਇਹ ਵਿਧੀ .NET ਵਿੱਚ DirectorySecurity ਕਲਾਸ ਦਾ ਹਿੱਸਾ ਹੈ ਅਤੇ ਜਾਂਚ ਕਰਦੀ ਹੈ ਕਿ ਕੀ ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਦੀਆਂ ਅਨੁਮਤੀਆਂ ਸੁਰੱਖਿਅਤ ਹਨ (ਗੈਰ-ਵਿਰਸੇਯੋਗ)। ਇਹ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟਾਂ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਡਾਇਰੈਕਟਰੀ ਅਨੁਮਤੀਆਂ ਸਹੀ ਢੰਗ ਨਾਲ ਕੌਂਫਿਗਰ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। |
stdoutLogFile | ਇਹ ਗੁਣ ਉਸ ਮਾਰਗ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜਿੱਥੇ stdout ਲੌਗ ਸੁਰੱਖਿਅਤ ਕੀਤੇ ਜਾਣਗੇ। ਇਹ ਤੈਨਾਤੀ ਮੁੱਦਿਆਂ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਰਨਟਾਈਮ ਗਲਤੀਆਂ ਨੂੰ ਕੈਪਚਰ ਕਰਦਾ ਹੈ ਜਦੋਂ Blazor ਐਪ ਨੂੰ IIS ਦੇ ਅੰਦਰ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ। |
DirectorySecurity | ਇੱਕ .NET ਕਲਾਸ ਫਾਈਲ ਸਿਸਟਮ ਡਾਇਰੈਕਟਰੀਆਂ ਲਈ ਐਕਸੈਸ ਕੰਟਰੋਲ ਅਤੇ ਆਡਿਟ ਸੁਰੱਖਿਆ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਇਹ ਤਸਦੀਕ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕਿ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਦੌਰਾਨ Blazor ਐਪ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸਹੀ ਪਹੁੰਚ ਨਿਯੰਤਰਣ ਸੂਚੀਆਂ (ACLs) ਲਾਗੂ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। |
Write-Host | ਇੱਕ PowerShell ਕਮਾਂਡ ਜੋ ਕੰਸੋਲ ਵਿੱਚ ਸੁਨੇਹਿਆਂ ਨੂੰ ਆਉਟਪੁੱਟ ਕਰਦੀ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਹ ਤੈਨਾਤੀ ਪ੍ਰਕਿਰਿਆ ਦੌਰਾਨ ਰੀਅਲ-ਟਾਈਮ ਡੀਬੱਗਿੰਗ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰਦੇ ਹੋਏ, IIS ਅਨੁਮਤੀਆਂ ਜਾਂ ਮੋਡੀਊਲ ਸਥਾਪਨਾ ਸਥਿਤੀ ਦੀ ਜਾਂਚ ਜਾਂ ਸੋਧ ਕਰਨ ਵੇਲੇ ਫੀਡਬੈਕ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। |
ਬਲੇਜ਼ਰ ਡਿਪਲਾਇਮੈਂਟ ਐਰਰ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਸਮਝਣਾ
ਪ੍ਰਦਾਨ ਕੀਤੀ ਗਈ ਪਹਿਲੀ ਸਕ੍ਰਿਪਟ ਦੇ ਅੰਦਰ ਸੰਭਾਵੀ ਗਲਤ ਸੰਰਚਨਾਵਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਤਿਆਰ ਕੀਤੀ ਗਈ ਹੈ web.config ਫਾਈਲ, ਜੋ ਅਕਸਰ IIS ਵਿੱਚ 500.19 ਗਲਤੀ ਦਾ ਕਾਰਨ ਬਣਦੀ ਹੈ। ਇੱਥੇ ਮਹੱਤਵਪੂਰਨ ਹਿੱਸਾ ` ਹੈ
ਦੂਜੇ ਹੱਲ ਵਿੱਚ, ਅਸੀਂ PowerShell ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਭਾਵਿਤ ਅਨੁਮਤੀ ਦੇ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਦੇ ਹਾਂ। ਦ icacls ਕਮਾਂਡ IIS_IUSRS ਸਮੂਹ ਨੂੰ ਲੋੜੀਂਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਦਿੰਦੀ ਹੈ, ਜੋ ਕਿ Blazor ਐਪ ਲਈ ਆਪਣੀਆਂ ਡਾਇਰੈਕਟਰੀਆਂ ਅਤੇ ਫਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ। ਇਹਨਾਂ ਅਨੁਮਤੀਆਂ ਤੋਂ ਬਿਨਾਂ, ਸਰਵਰ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਚੱਲਣ ਤੋਂ ਰੋਕ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ 500.19 ਵਰਗੀਆਂ ਗਲਤੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। PowerShell ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ ਇਹਨਾਂ ਅਨੁਮਤੀਆਂ ਨੂੰ ਇੱਕ ਬੈਚ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਤੇਜ਼ੀ ਨਾਲ ਸੈਟ ਕਰ ਸਕਦੇ ਹੋ, ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦੇ ਹੋਏ ਕਿ ਸਾਰੇ ਲੋੜੀਂਦੇ ਉਪਭੋਗਤਾਵਾਂ ਅਤੇ ਸਮੂਹਾਂ ਨੇ ਐਪ ਦੇ ਫੋਲਡਰ ਤੱਕ ਪੜ੍ਹਨ ਅਤੇ ਲਿਖਣ ਦੀ ਪਹੁੰਚ ਕੀਤੀ ਹੈ।
ਤੀਜਾ ਹੱਲ ਬਲੇਜ਼ਰ ਸੰਰਚਨਾ ਦੇ ਅੰਦਰ stdout ਲਾਗਿੰਗ ਨੂੰ ਸਮਰੱਥ ਕਰਕੇ ਡੀਬੱਗਿੰਗ 'ਤੇ ਕੇਂਦ੍ਰਤ ਕਰਦਾ ਹੈ। ਯੋਗ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ stdoutLogEnabled ਰਨਟਾਈਮ ਗਲਤੀਆਂ ਨੂੰ ਇੱਕ ਨਿਰਧਾਰਤ ਫਾਈਲ ਵਿੱਚ ਲੌਗਇਨ ਕਰਕੇ ਕੈਪਚਰ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। ਇਹ ਵਿਧੀ ਤੈਨਾਤੀ ਦੌਰਾਨ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਕਿਉਂਕਿ ਬਹੁਤ ਸਾਰੀਆਂ ਤਰੁੱਟੀਆਂ ਜੋ ਬ੍ਰਾਊਜ਼ਰ ਜਾਂ IIS ਗਲਤੀ ਲੌਗ ਦੁਆਰਾ ਦਿਖਾਈ ਨਹੀਂ ਦਿੰਦੀਆਂ ਹਨ, ਇੱਥੇ ਫੜੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। `./logs/stdout` ਫੋਲਡਰ ਵਿੱਚ ਲਾਗਾਂ ਦੀ ਜਾਂਚ ਕਰਕੇ, ਡਿਵੈਲਪਰ ਖਾਸ ਸਮੱਸਿਆਵਾਂ ਦਾ ਪਤਾ ਲਗਾ ਸਕਦੇ ਹਨ, ਭਾਵੇਂ ਉਹ ਐਪਲੀਕੇਸ਼ਨ ਕੋਡ ਜਾਂ ਵਾਤਾਵਰਣ ਸੰਰਚਨਾ ਸਮੱਸਿਆਵਾਂ ਨਾਲ ਸਬੰਧਤ ਹੋਣ।
ਅੰਤ ਵਿੱਚ, ਚੌਥੀ ਸਕ੍ਰਿਪਟ ਜਾਂਚ ਕਰਦੀ ਹੈ ਕਿ ਕੀ AspNetCoreModuleV2 IIS ਵਿੱਚ ਸਥਾਪਿਤ ਹੈ। ਇਹ PowerShell ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ Get-WebGlobalModule ਕਮਾਂਡ, ਜੋ ਸਰਵਰ 'ਤੇ ਸਥਾਪਿਤ ਸਾਰੇ ਗਲੋਬਲ ਮੋਡੀਊਲ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਮੋਡੀਊਲ ਗੁੰਮ ਹੈ, ਤਾਂ ਅਗਲੀ ਕਮਾਂਡ, ਇੰਸਟਾਲ ਕਰੋ-ਵਿੰਡੋਜ਼ ਫੀਚਰ, ਲੋੜੀਂਦੇ IIS ਭਾਗਾਂ ਨੂੰ ਸਥਾਪਿਤ ਕਰਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਬਲੇਜ਼ਰ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਸਹੀ ਢੰਗ ਨਾਲ ਚੱਲਣ ਲਈ ਸਾਰੀਆਂ ਲੋੜੀਂਦੀਆਂ ਨਿਰਭਰਤਾਵਾਂ ਹਨ। ਇਹਨਾਂ ਮੋਡਿਊਲਾਂ ਤੋਂ ਬਿਨਾਂ, Blazor ਐਪਸ IIS ਦੇ ਅਧੀਨ ਕੰਮ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ, ਜਿਸ ਨਾਲ 500.19 ਵਰਗੀਆਂ ਕੌਂਫਿਗਰੇਸ਼ਨ ਗਲਤੀਆਂ ਹੁੰਦੀਆਂ ਹਨ। ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਸਕ੍ਰਿਪਟ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਡਾਇਰੈਕਟਰੀ ਅਨੁਮਤੀਆਂ ਅਤੇ IIS ਮੋਡੀਊਲ ਸੈਟਿੰਗਾਂ ਸਹੀ ਢੰਗ ਨਾਲ ਲਾਗੂ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ, ਤੈਨਾਤੀ ਪ੍ਰਕਿਰਿਆ ਲਈ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਇੱਕ ਵਾਧੂ ਪਰਤ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ।
ਹੱਲ 1: web.config ਨੂੰ ਸੋਧ ਕੇ ਬਲੇਜ਼ਰ ਡਿਪਲਾਇਮੈਂਟ ਗਲਤੀ ਨੂੰ ਹੱਲ ਕਰਨਾ
ASP.NET ਕੋਰ ਕੌਂਫਿਗਰੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਅਤੇ IIS ਲਈ ਸਹੀ ਸੈਟਅਪ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ।
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="" verb="" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\BlazorApp2.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
<!--Ensure the right handler is mapped, and the processPath is correct.-->
ਹੱਲ 2: IIS 'ਤੇ ਇਜਾਜ਼ਤ ਦੇ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਨਾ
ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ PowerShell ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਕਿ IIS_IUSRS ਸਮੂਹ ਕੋਲ ਸਹੀ ਅਨੁਮਤੀਆਂ ਹਨ।
# PowerShell script to set proper permissions for the application directory
param (
[string]$path = "C:\inetpub\wwwroot\BlazorApp"
)
# Grant read and write permissions to IIS_IUSRS
icacls $path /grant "IIS_IUSRS:(OI)(CI)RX"
icacls $path /grant "IIS_IUSRS:(OI)(CI)(F)"
Write-Host "Permissions set successfully on $path"
# Make sure this script is run with administrative privileges.
ਹੱਲ 3: stdout ਲੌਗਸ ਨਾਲ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਡੀਬੱਗ ਕਰਨਾ
ਗਲਤੀ ਵੇਰਵਿਆਂ ਨੂੰ ਕੈਪਚਰ ਕਰਨ ਲਈ ASP.NET ਕੋਰ stdout ਲੌਗ ਦੀ ਵਰਤੋਂ ਕਰਨਾ।
<configuration>
<system.webServer>
<aspNetCore processPath=".\BlazorApp2.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</configuration>
# After enabling logging, ensure that the "logs" folder exists in the application directory.
# Check the logs for further information on what's causing the deployment issue.
# Disable stdout logging in production to avoid performance issues.
ਹੱਲ 4: ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ IIS ਮੋਡੀਊਲ ਸਹੀ ਢੰਗ ਨਾਲ ਸਥਾਪਿਤ ਕੀਤੇ ਗਏ ਹਨ
ਇਹ ਪੁਸ਼ਟੀ ਕਰਨਾ ਕਿ ਬਲੇਜ਼ਰ ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਸਹੀ IIS ਮੋਡੀਊਲ ਸਮਰਥਿਤ ਹਨ।
# PowerShell script to check if IIS modules are installed
Import-Module WebAdministration
$modules = Get-WebGlobalModule | Where-Object {$_.Name -eq "AspNetCoreModuleV2"}
if ($modules -eq $null) {
Write-Host "AspNetCoreModuleV2 is missing. Installing the module..."
Install-WindowsFeature -Name Web-Asp-Net45
} else {
Write-Host "AspNetCoreModuleV2 is already installed."
}
ਹੱਲ 5: ਸੰਰਚਨਾ ਅਤੇ ਅਨੁਮਤੀਆਂ ਦੀ ਜਾਂਚ ਯੂਨਿਟ
ਸੰਰਚਨਾ ਦੇ ਬੈਕਐਂਡ ਪ੍ਰਮਾਣਿਕਤਾ ਲਈ NUnit ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਸੈੱਟਅੱਪ।
using NUnit.Framework;
namespace BlazorApp.Tests
{
public class DeploymentTests
{
[Test]
public void TestPermissionsAreSetCorrectly()
{
var directory = "C:\\inetpub\\wwwroot\\BlazorApp";
var permissions = new System.Security.AccessControl.DirectorySecurity(directory, System.Security.AccessControl.AccessControlSections.All);
Assert.IsTrue(permissions.AreAccessRulesProtected == false, "Permissions are incorrect!");
}
}
}
# This unit test validates whether the directory permissions are correctly set.
ਬਲੇਜ਼ਰ ਤੈਨਾਤੀਆਂ ਲਈ IIS ਸੰਰਚਨਾ ਦੀ ਪੜਚੋਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ
IIS 'ਤੇ ਬਲੇਜ਼ਰ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਤੈਨਾਤ ਕਰਦੇ ਸਮੇਂ, ਇੱਕ ਆਮ ਮੁੱਦਾ IIS ਮੋਡਿਊਲਾਂ ਦੀ ਗਲਤ ਸੰਰਚਨਾ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ AspNetCoreModuleV2. ਇਹ ਮੋਡੀਊਲ IIS ਦੇ ਅੰਦਰ .NET ਕੋਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਮੇਜ਼ਬਾਨੀ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਹੈ ਅਤੇ ਇਸ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸਥਾਪਿਤ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੇਕਰ ਗੁੰਮ ਹੈ, ਤਾਂ ਇਹ 500.19 ਵਰਗੀਆਂ ਗਲਤੀਆਂ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ। ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਨਾ ਕਿ ਇਸ ਮੋਡੀਊਲ ਦਾ ਸਹੀ ਸੰਸਕਰਣ ਸਮਰੱਥ ਹੈ Blazor ਐਪ ਦੇ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਇਹ ਪੁਸ਼ਟੀ ਕਰਨਾ ਕਿ ਹੋਸਟਿੰਗ ਮਾਡਲ "ਇਨਪ੍ਰੋਸੈਸ" ਜਾਂ "ਆਊਟ ਆਫ ਪ੍ਰੋਸੈਸ" 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਇਹਨਾਂ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਨ ਦੀ ਕੁੰਜੀ ਹੋ ਸਕਦੀ ਹੈ।
ਇੱਕ ਹੋਰ ਕਾਰਕ ਜੋ 500.19 ਗਲਤੀ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ ਟੀਚਾ ਵਾਤਾਵਰਣ ਵਿੱਚ ਲੋੜੀਂਦੇ ਭਾਗਾਂ ਦੀ ਘਾਟ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਕਿਸੇ ਸਰਵਰ 'ਤੇ Blazor ਐਪ ਚਲਾਉਣਾ ਜਿਸ ਵਿੱਚ ਉਚਿਤ .NET ਰਨਟਾਈਮ ਸੰਸਕਰਣ ਸਥਾਪਤ ਨਹੀਂ ਹੈ, ਸੰਰਚਨਾ ਸਮੱਸਿਆਵਾਂ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ। ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਨਾ ਕਿ ਸਰਵਰ ਦਾ ਰਨਟਾਈਮ ਉਹੀ ਹੈ ਜਿੰਨਾ Blazor ਐਪ ਸਫਲ ਤੈਨਾਤੀ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਪ੍ਰਸ਼ਾਸਕਾਂ ਨੂੰ ਇਹ ਵੀ ਤਸਦੀਕ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਕਿ IIS ਵਿੱਚ ਸਾਈਟ ਲਈ ਸਹੀ ਐਪਲੀਕੇਸ਼ਨ ਪੂਲ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਇੱਕ ਜੋ ਕਿ .NET ਕੋਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਕੌਂਫਿਗਰ ਕੀਤਾ ਗਿਆ ਹੈ।
ਕੌਂਫਿਗਰੇਸ਼ਨ ਮੁੱਦਿਆਂ ਤੋਂ ਇਲਾਵਾ, ਫੋਲਡਰ ਅਨੁਮਤੀਆਂ ਤੈਨਾਤੀ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਭੂਮਿਕਾ ਨਿਭਾਉਂਦੀਆਂ ਹਨ। ਹਾਲਾਂਕਿ ਤੁਸੀਂ ਨੂੰ ਇਜਾਜ਼ਤਾਂ ਦਿੱਤੀਆਂ ਹਨ IIS_IUSRS ਗਰੁੱਪ, ਵਾਧੂ ਸੁਰੱਖਿਆ ਨਿਯਮ ਖਾਸ ਫਾਈਲਾਂ ਜਾਂ ਡਾਇਰੈਕਟਰੀਆਂ ਤੱਕ ਪਹੁੰਚ ਨੂੰ ਰੋਕ ਸਕਦੇ ਹਨ। PowerShell ਜਾਂ IIS ਮੈਨੇਜਰ ਵਰਗੇ ਟੂਲਸ ਰਾਹੀਂ ਇਹਨਾਂ ਅਨੁਮਤੀਆਂ ਦੀ ਪੁਸ਼ਟੀ ਅਤੇ ਸੋਧ ਕਰਨਾ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ Blazor ਐਪ ਕੋਲ ਰਨਟਾਈਮ ਓਪਰੇਸ਼ਨਾਂ ਲਈ ਲੋੜੀਂਦੀਆਂ ਫਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ ਹੈ। ਮੋਡੀਊਲ ਸੈੱਟਅੱਪ, ਰਨਟਾਈਮ ਅਨੁਕੂਲਤਾ, ਅਤੇ ਅਨੁਮਤੀਆਂ ਦਾ ਸੁਮੇਲ ਇਸ ਗਲਤੀ ਦੇ ਨਿਪਟਾਰੇ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।
IIS Blazor ਤੈਨਾਤੀ ਮੁੱਦਿਆਂ ਬਾਰੇ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ
- IIS ਵਿੱਚ ਗਲਤੀ 500.19 ਦਾ ਕੀ ਅਰਥ ਹੈ?
- ਗਲਤੀ 500.19 ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ ਵਿੱਚ ਇੱਕ ਅਵੈਧ ਸੰਰਚਨਾ ਹੈ web.config ਫਾਈਲ, IIS ਨੂੰ ਬੇਨਤੀ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ।
- ਬਲੇਜ਼ਰ ਤੈਨਾਤੀ ਵਿੱਚ AspNetCoreModuleV2 ਕੀ ਹੈ?
- ਦ AspNetCoreModuleV2 IIS ਦੇ ਅੰਦਰ .NET ਕੋਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਮੇਜ਼ਬਾਨੀ ਲਈ ਇੱਕ ਮੁੱਖ ਮੋਡੀਊਲ ਹੈ। ਇਹ Blazor ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ IIS ਦੇ ਨਾਲ ਏਕੀਕ੍ਰਿਤ ਕਰਦਾ ਹੈ, ਉਹਨਾਂ ਨੂੰ ਮੂਲ ਰੂਪ ਵਿੱਚ ਚਲਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
- ਮੈਂ ਸਮੱਸਿਆ-ਨਿਪਟਾਰੇ ਲਈ stdout ਲਾਗਿੰਗ ਨੂੰ ਕਿਵੇਂ ਸਮਰੱਥ ਕਰਾਂ?
- stdout ਲਾਗਿੰਗ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਸੈੱਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ stdoutLogEnabled ਵਿੱਚ ਸੱਚ ਹੈ web.config ਫਾਈਲ। ਇਹ ਤੈਨਾਤੀ ਦੌਰਾਨ ਰਨਟਾਈਮ ਗਲਤੀਆਂ ਨੂੰ ਕੈਪਚਰ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।
- Blazor ਐਪ ਨੂੰ ਚਲਾਉਣ ਲਈ IIS ਨੂੰ ਕਿਹੜੀਆਂ ਇਜਾਜ਼ਤਾਂ ਦੀ ਲੋੜ ਹੈ?
- IIS_IUSRS ਸਮੂਹ ਨੂੰ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਡਾਇਰੈਕਟਰੀ 'ਤੇ ਪੜ੍ਹਨ, ਲਿਖਣ ਅਤੇ ਲਾਗੂ ਕਰਨ ਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ, ਜਿਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਰਚਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ icacls.
- ਮੈਂ ਕਿਵੇਂ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹਾਂ ਕਿ ਕੀ ਲੋੜੀਂਦਾ .NET ਰਨਟਾਈਮ ਸਰਵਰ 'ਤੇ ਸਥਾਪਤ ਹੈ?
- ਤੁਸੀਂ ਕਮਾਂਡ ਚਲਾ ਕੇ ਇੰਸਟਾਲ ਕੀਤੇ .NET ਰਨਟਾਈਮ ਦੀ ਪੁਸ਼ਟੀ ਕਰ ਸਕਦੇ ਹੋ dotnet --info ਸਰਵਰ 'ਤੇ. ਇਹ ਸਾਰੇ ਉਪਲਬਧ ਰਨਟਾਈਮ ਸੰਸਕਰਣ ਦਿਖਾਏਗਾ।
ਬਲੇਜ਼ਰ ਤੈਨਾਤੀ ਤਰੁਟੀਆਂ ਨੂੰ ਹੱਲ ਕਰਨਾ
ਸਿੱਟਾ ਕੱਢਣ ਲਈ, ਬਲੇਜ਼ਰ ਤੈਨਾਤੀ ਗਲਤੀਆਂ ਜਿਵੇਂ ਕਿ 500.19 ਦਾ ਨਿਪਟਾਰਾ ਕਰਨ ਲਈ ਦੋਵਾਂ ਦੀ ਪੂਰੀ ਜਾਂਚ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। web.config ਫਾਈਲ ਅਤੇ ਸਰਵਰ ਵਾਤਾਵਰਣ. ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ IIS ਵਿੱਚ ਸਹੀ ਮਾਡਿਊਲ ਸਥਾਪਿਤ ਕੀਤੇ ਗਏ ਹਨ ਅਤੇ ਅਨੁਮਤੀਆਂ ਦੀ ਸਮੀਖਿਆ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।
ਇਸ ਤੋਂ ਇਲਾਵਾ, ਲੌਗਿੰਗ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਣਾ ਅਤੇ ਅਧਿਕਾਰਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ PowerShell ਦੀ ਵਰਤੋਂ ਕਰਨ ਨਾਲ ਲੁਕੇ ਹੋਏ ਮੁੱਦਿਆਂ ਨੂੰ ਉਜਾਗਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਹਰੇਕ ਖੇਤਰ ਨੂੰ ਧਿਆਨ ਨਾਲ ਸੰਬੋਧਿਤ ਕਰਕੇ, ਤੁਸੀਂ ਸੰਰਚਨਾ ਦੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਖਤਮ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਆਪਣੀ ਬਲੇਜ਼ਰ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹੋ।
ਬਲੇਜ਼ਰ ਡਿਪਲਾਇਮੈਂਟ ਐਰਰ ਹੱਲ ਲਈ ਹਵਾਲੇ ਅਤੇ ਸਰੋਤ
- IIS ਤੈਨਾਤੀ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਨ ਬਾਰੇ ਅਧਿਕਾਰਤ ਦਸਤਾਵੇਜ਼ਾਂ ਲਈ, ਜਾਓ IIS ਵਿੱਚ Microsoft ASP.NET ਕੋਰ ਹੋਸਟਿੰਗ .
- web.config ਫਾਈਲ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਬਾਰੇ ਹੋਰ ਜਾਣਨ ਲਈ, ਵੇਖੋ IIS ਸੰਰਚਨਾ ਹਵਾਲਾ .
- ਇਜਾਜ਼ਤਾਂ ਅਤੇ IIS ਅਨੁਮਤੀਆਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਲਈ icacls ਦੀ ਵਰਤੋਂ ਕਰਨ ਬਾਰੇ ਇੱਕ ਮਦਦਗਾਰ ਗਾਈਡ ਇੱਥੇ ਲੱਭੀ ਜਾ ਸਕਦੀ ਹੈ Microsoft ICACLS ਕਮਾਂਡ ਹਵਾਲਾ .