ASP.NET ਵਿੱਚ ਕਸਟਮ ਸਿਰਲੇਖਾਂ ਨਾਲ WCF ਸੇਵਾ ਕਾਲਾਂ ਨੂੰ ਵਧਾਉਣਾ
ਦ ਅਤੇ WCF ਸੇਵਾਵਾਂ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਵਾਲੇ ASP.NET ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ ਸੇਵਾ ਨੂੰ ਅਕਸਰ ਹੋਰ ਕਸਟਮ ਸਿਰਲੇਖਾਂ ਦੀ ਸਪਲਾਈ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਅਸਿੰਕ੍ਰੋਨਸ ਸੇਵਾ ਕਾਲਾਂ ਕਰਨ ਲਈ JavaScript ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ, ਇਹ ਪ੍ਰਕਿਰਿਆ ਮੁਸ਼ਕਲ ਹੋ ਸਕਦੀ ਹੈ।
ਆਮ ਤੌਰ 'ਤੇ, JavaScript ਦੀ ਵਰਤੋਂ ਡਿਵੈਲਪਰਾਂ ਦੁਆਰਾ AJAX- ਸਮਰਥਿਤ ਸੇਵਾਵਾਂ ਦੁਆਰਾ WCF ਸੇਵਾਵਾਂ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਹਾਲਾਂਕਿ ਸੇਵਾਵਾਂ ਸਧਾਰਨ ਬੇਨਤੀਆਂ ਲਈ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦੀਆਂ ਹਨ, ਕਸਟਮ ਸਿਰਲੇਖਾਂ ਨੂੰ ਜੋੜਦੇ ਸਮੇਂ ਵਾਧੂ ਦੇਖਭਾਲ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ ਜਿਵੇਂ ਕਿ .
GetAjaxService() ਅਤੇ ਸਮਾਨ ਢੰਗਾਂ ਰਾਹੀਂ ਇਹਨਾਂ ਸਿਰਲੇਖਾਂ ਨੂੰ ਪਾਸ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਸਮੇਂ, ਸਮੱਸਿਆ ਆਉਂਦੀ ਹੈ। GetUsers() ਵਿੱਚ ਕਸਟਮ ਸਿਰਲੇਖ ਮੂਲ ਰੂਪ ਵਿੱਚ ਸਮਰਥਿਤ ਨਹੀਂ ਹਨ। ਜਦੋਂ ਕਿ ਹੋਰ ਤਰੀਕਿਆਂ ਜਿਵੇਂ ਕਿ get() ਜਾਂ XMLHttpRequest ਵਿੱਚ ਸਿਰਲੇਖਾਂ ਨੂੰ ਜੋੜਨਾ ਸਧਾਰਨ ਹੈ, ਇਹ ਮੌਜੂਦਾ ਫਰੇਮਵਰਕ ਦੇ ਅੰਦਰ ਇਸਨੂੰ ਕਿਵੇਂ ਪੂਰਾ ਕਰਨਾ ਹੈ ਬਾਰੇ ਚਰਚਾ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।
ਇਹ ਟਿਊਟੋਰਿਅਲ ਤੁਹਾਨੂੰ ਮੌਜੂਦਾ ਸੇਵਾ ਕਾਲ ਨੂੰ ਬਦਲਣ ਦੀ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਅਗਵਾਈ ਕਰੇਗਾ ਤਾਂ ਜੋ WCF ਸੇਵਾ ਲਈ AJAX ਸਵਾਲ ਕਸਟਮ ਹੈਡਰ ਜੋੜ ਸਕਣ। ਮਹੱਤਵਪੂਰਨ ਡੇਟਾ, ਜਿਵੇਂ ਕਿ , ਇਸ ਤਕਨੀਕ ਲਈ ਸਹੀ ਢੰਗ ਨਾਲ ਪਾਸ ਕੀਤਾ ਗਿਆ ਹੈ.
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
setRequestHeader() | ਇਸ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ HTTP ਬੇਨਤੀ ਸਿਰਲੇਖ ਦਾ ਮੁੱਲ ਸੈੱਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਸ ਕੇਸ ਵਿੱਚ, XMLHttpRequest ਨੂੰ ਕਸਟਮ ਪ੍ਰਦਾਨ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ WCF ਸੇਵਾ ਲਈ ਸਿਰਲੇਖ। |
navigator.userAgent | ਬ੍ਰਾਊਜ਼ਰ ਦੀ ਉਪਭੋਗਤਾ-ਏਜੰਟ ਸਤਰ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਇਹ ਅਕਸਰ ਉਪਭੋਗਤਾ ਦੇ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ, ਡਿਵਾਈਸ ਅਤੇ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਜੋ ਕਿ ਲੌਗਿੰਗ ਜਾਂ ਅਨੁਕੂਲਤਾ ਕਾਰਨਾਂ ਲਈ ਮਦਦਗਾਰ ਹੁੰਦਾ ਹੈ। |
$.ajax() | ਇਸ jQuery ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਅਸਿੰਕ੍ਰੋਨਸ HTTP ਬੇਨਤੀਆਂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ WCF ਸੇਵਾ ਨੂੰ ਕਾਲ ਕਰਨ ਅਤੇ ਕਸਟਮ ਸਿਰਲੇਖ ਜਮ੍ਹਾਂ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ . |
HttpContext.Current.Request.Headers | ASP.NET ਦੁਆਰਾ ਸਰਵਰ ਸਾਈਡ 'ਤੇ ਬੇਨਤੀ ਦੇ ਸਿਰਲੇਖਾਂ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਨੂੰ ਕੱਢਣ ਲਈ ਇਹ ਮਹੱਤਵਪੂਰਨ ਹੈ WCF ਸੇਵਾ ਵਿਧੀ ਵਿੱਚ ਸਿਰਲੇਖ। |
ServiceBehavior | ASP.NET ਦੁਆਰਾ ਸਰਵਰ ਸਾਈਡ 'ਤੇ ਬੇਨਤੀ ਦੇ ਸਿਰਲੇਖਾਂ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਨੂੰ ਕੱਢਣ ਲਈ ਇਹ ਮਹੱਤਵਪੂਰਨ ਹੈ WCF ਸੇਵਾ ਵਿਧੀ ਵਿੱਚ ਸਿਰਲੇਖ। |
OperationContract | ਇਹ ਸੰਪੱਤੀ ਇੱਕ WCF ਸੇਵਾ ਵਿਧੀ ਦੀ ਪਛਾਣ ਕਰਦੀ ਹੈ ਜਿਸਨੂੰ ਗਾਹਕ ਕਾਲ ਕਰਨ ਦੇ ਯੋਗ ਹੁੰਦੇ ਹਨ। ਇਹ ਲੇਖ ਇਸ ਨੂੰ GetUsers ਵਿਧੀ 'ਤੇ ਲਾਗੂ ਕਰਦਾ ਹੈ ਤਾਂ ਕਿ ਕਲਾਇੰਟ-ਸਾਈਡ JavaScript ਇਸ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕੇ। |
HttpRequestMessage | ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਵਿੱਚ WCF ਸੇਵਾ ਲਈ ਇੱਕ ਬੇਨਤੀ ਬਣਾਉਣ ਲਈ, HttpRequestMessage ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਤੁਹਾਨੂੰ ਕਸਟਮ ਹੈਡਰ ਜੋੜਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ , ਟੈਸਟ ਦ੍ਰਿਸ਼ਾਂ ਲਈ। |
Assert.IsTrue() | ਇਹ C# ਯੂਨਿਟ ਟੈਸਟ ਕਮਾਂਡ ਇਹ ਦੇਖਣ ਲਈ ਜਾਂਚ ਕਰਦੀ ਹੈ ਕਿ ਕੀ ਕੋਈ ਸ਼ਰਤ ਸਹੀ ਹੈ। ਇੱਥੇ, ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕਿ, ਕਸਟਮ ਸਿਰਲੇਖਾਂ ਦੇ ਪਾਸ ਹੋਣ ਦੀ ਜਾਂਚ ਕਰਦੇ ਸਮੇਂ, WCF ਸੇਵਾ ਤੋਂ HTTP ਜਵਾਬ ਸਫਲ ਹੈ। |
WCF ਸੇਵਾ ਲਈ ਉਪਭੋਗਤਾ-ਏਜੰਟ ਸਿਰਲੇਖ ਨੂੰ ਪਾਸ ਕਰਨ ਲਈ ASP.NET ਵਿੱਚ JavaScript ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ
ਉੱਪਰ ਜ਼ਿਕਰ ਕੀਤੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਦਿਖਾਉਂਦੀਆਂ ਹਨ ਕਿ ASP.NET ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਕਸਟਮ ਹੈਡਰ ਕਿਵੇਂ ਪਾਸ ਕੀਤੇ ਜਾਣ ਜੋ AJAX- ਸਮਰਥਿਤ WCF ਸੇਵਾ ਕਾਲਾਂ ਕਰਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ . ਪਹਿਲੀ ਉਦਾਹਰਣ ਵਿੱਚ, ਦ ਉਪਭੋਗਤਾ-ਏਜੰਟ ਹੈਡਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੱਥੀਂ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ ਢੰਗ. ਇਹ ਲੋੜੀਂਦਾ ਹੈ ਕਿਉਂਕਿ ਆਮ AJAX ਸੇਵਾ ਕਾਲਾਂ ਵਿੱਚ ਇਹ ਸਿਰਲੇਖ ਮੂਲ ਰੂਪ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਹੁੰਦਾ ਹੈ। WCF ਸੇਵਾ ਨੂੰ HTTP ਬੇਨਤੀ ਭੇਜਣ ਤੋਂ ਪਹਿਲਾਂ, ਅਸੀਂ ਇਸਨੂੰ ਵਰਤ ਕੇ ਕਸਟਮ ਸਿਰਲੇਖ ਜੋੜ ਸਕਦੇ ਹਾਂ . ਇੱਥੇ, ਬ੍ਰਾਊਜ਼ਰ ਦੀ ਯੂਜ਼ਰ ਏਜੰਟ ਸਤਰ ਮੁੜ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਸਰਵਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਾਸ ਕੀਤੀ ਜਾਂਦੀ ਹੈ navigator.userAgent.
ਦੂਜੀ ਸਕਰਿਪਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਉਹੀ ਟੀਚਾ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ . jQuery ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਅਸਿੰਕ੍ਰੋਨਸ HTTP ਬੇਨਤੀਆਂ ਨੂੰ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ, ਅਤੇ ਅਸੀਂ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦੇ ਹਾਂ ਬੇਨਤੀ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਇੱਕ ਕਸਟਮ ਸਿਰਲੇਖ ਦੀ ਵਰਤੋਂ ਕਰਕੇ WCF ਸੇਵਾ ਲਈ। jQuery ਦੇ ਛੋਟੇ ਸੰਟੈਕਸ ਅਤੇ ਗਲਤੀ-ਪ੍ਰਬੰਧਨ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਡਿਵੈਲਪਰਾਂ ਲਈ ਬੇਨਤੀ ਦੀ ਸਫਲਤਾ ਅਤੇ ਅਸਫਲਤਾ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਸੰਭਾਲਣ ਲਈ ਫਾਇਦੇਮੰਦ ਬਣਾਉਂਦੀਆਂ ਹਨ। ਸਰਵਰ-ਸਾਈਡ WCF ਸੇਵਾ ਨੂੰ ਲੋੜੀਂਦਾ ਪ੍ਰਾਪਤ ਕਰਨਾ ਯਕੀਨੀ ਬਣਾਉਣਾ ਪ੍ਰੋਸੈਸਿੰਗ ਅਤੇ ਰਿਪੋਰਟਿੰਗ ਦੋਵਾਂ ਮਾਮਲਿਆਂ ਵਿੱਚ ਟੀਚਾ ਹੈ।
ਦੀ ਵਰਤੋਂ ਬੈਕਐਂਡ 'ਤੇ WCF ਸੇਵਾ ਨੂੰ ਸੋਧਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਜੋ ਇਹ ਆਉਣ ਵਾਲੇ ਬੇਨਤੀ ਸਿਰਲੇਖਾਂ ਨੂੰ ਪੜ੍ਹ ਸਕੇ। ਇਹ ਸੇਵਾ ਨੂੰ ਵਰਤਣ ਲਈ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ ਵਿਸ਼ਲੇਸ਼ਣ, ਪ੍ਰਮਾਣਿਕਤਾ, ਅਤੇ ਇਸ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਤੋਂ ਬਾਅਦ ਲੋੜ ਅਨੁਸਾਰ ਹੋਰ ਵਰਤੋਂ ਲਈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਇਸ ਗੱਲ ਦੀ ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ ਕਿ ਮਹੱਤਵਪੂਰਨ ਮੈਟਾਡੇਟਾ, ਜਿਵੇਂ ਕਿ ਕਲਾਇੰਟ ਜਾਣਕਾਰੀ, ਸੇਵਾ ਦੇ ਨਿਯਮਤ ਸੰਚਾਲਨ ਵਿੱਚ ਦਖਲ ਦਿੱਤੇ ਬਿਨਾਂ ਪੂਰੀ ਸੇਵਾ ਕਾਲ ਦੌਰਾਨ ਉਪਲਬਧ ਰਹਿੰਦਾ ਹੈ। ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਕੇਲੇਬਿਲਟੀ ਵਿੱਚ ਸੁਧਾਰ ਕੀਤਾ ਗਿਆ ਹੈ , ਜੋ ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ ਕਿ ਸੇਵਾ ਦੀਆਂ ਕਈ ਉਦਾਹਰਣਾਂ ਸਮਕਾਲੀ ਬੇਨਤੀਆਂ ਨੂੰ ਸੰਭਾਲ ਸਕਦੀਆਂ ਹਨ।
ਅੰਤ ਵਿੱਚ, ਏ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ ਕਿ ਸਿਰਲੇਖ ਨੂੰ WCF ਸੇਵਾ ਦੁਆਰਾ ਉਚਿਤ ਤੌਰ 'ਤੇ ਪ੍ਰਾਪਤ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਟੈਸਟ ਇਹ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਸੇਵਾ ਇੱਕ ਅਨੁਕੂਲਿਤ ਨਾਲ ਇੱਕ HTTP ਬੇਨਤੀ ਭੇਜ ਕੇ ਸਫਲਤਾਪੂਰਵਕ ਜਵਾਬ ਦਿੰਦੀ ਹੈ ਉਪਭੋਗਤਾ-ਏਜੰਟ. ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਨ ਲਈ ਕਿ ਸੇਵਾ ਬ੍ਰਾਉਜ਼ਰਾਂ ਅਤੇ ਗਾਹਕਾਂ ਵਿੱਚ ਉਦੇਸ਼ ਅਨੁਸਾਰ ਪ੍ਰਦਰਸ਼ਨ ਕਰਦੀ ਹੈ, ਇਹਨਾਂ ਟੈਸਟਾਂ ਨੂੰ ਵੱਖ-ਵੱਖ ਸੰਦਰਭਾਂ ਵਿੱਚ ਅਭਿਆਸ ਵਿੱਚ ਲਿਆਉਣਾ ਲਾਜ਼ਮੀ ਹੈ। ਇਹ ਸਕ੍ਰਿਪਟਾਂ ਲਾਜ਼ਮੀ ਤੌਰ 'ਤੇ ਹਰੇਕ ਬੇਨਤੀ ਦੇ ਨਾਲ ਲੋੜੀਂਦੇ ਸਿਰਲੇਖ ਪ੍ਰਦਾਨ ਕਰਦੀਆਂ ਹਨ, ਕਲਾਇੰਟ-ਸਾਈਡ JavaScript ਅਤੇ ਇੱਕ WCF ਸੇਵਾ ਵਿਚਕਾਰ ਸਹੀ ਅਤੇ ਸੁਰੱਖਿਅਤ ਸੰਚਾਰ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੀਆਂ ਹਨ।
ASP.NET ਵਿੱਚ WCF ਸੇਵਾ ਲਈ ਉਪਭੋਗਤਾ-ਏਜੰਟ ਹੈਡਰ ਭੇਜਣ ਲਈ ਵੱਖ-ਵੱਖ ਤਰੀਕੇ
ਇਹ ਸਕ੍ਰਿਪਟ ਇੱਕ ਸੋਧਿਆ ਉਪਭੋਗਤਾ-ਏਜੰਟ ਹੈਡਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ WCF ਸੇਵਾ ਨੂੰ ਕਾਲ ਕਰਦੀ ਹੈ ਅਤੇ .
// JavaScript - Using XMLHttpRequest to pass User-Agent header
function GetUsersWithHeaders() {
var xhr = new XMLHttpRequest();
xhr.open("POST", "AjaxWebService.svc/GetUsers", true);
xhr.setRequestHeader("User-Agent", navigator.userAgent);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var result = JSON.parse(xhr.responseText);
if (result !== null) {
console.log(result); // Process result
}
}
};
xhr.send();
}
WCF ਸਰਵਿਸ ਕਾਲ ਵਿੱਚ ਯੂਜ਼ਰ-ਏਜੰਟ ਹੈਡਰ ਜੋੜਨ ਲਈ jQuery ਦੀ ਵਰਤੋਂ ਕਰਨਾ
ਇਹ ਤਕਨੀਕ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ AJAX ਕਾਲ ਦੇ ਦੌਰਾਨ WCF ਸੇਵਾ ਨੂੰ ਇੱਕ ਕਸਟਮਾਈਜ਼ਡ ਯੂਜ਼ਰ-ਏਜੰਟ ਸਿਰਲੇਖ ਕਿਵੇਂ ਪ੍ਰਦਾਨ ਕਰਨਾ ਹੈ .
// JavaScript - Using jQuery.ajax to pass User-Agent header
function GetUsersWithJQuery() {
$.ajax({
url: 'AjaxWebService.svc/GetUsers',
type: 'POST',
headers: {
'User-Agent': navigator.userAgent
},
success: function(result) {
if (result !== null) {
console.log(result); // Process result
}
},
error: function() {
alert('Error while calling service');
}
});
}
ASP.NET ਬੈਕਐਂਡ: ਕਸਟਮ ਸਿਰਲੇਖਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ WCF ਸੇਵਾ ਨੂੰ ਸੋਧਣਾ
ਹੇਠਾਂ ਦਿੱਤੀ ਗਈ ਸਕ੍ਰਿਪਟ ਇਹ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ WCF ਸੇਵਾ ਬੈਕਐਂਡ ਨੂੰ ਕਿਵੇਂ ਬਦਲਣਾ ਹੈ ਤਾਂ ਜੋ ਇਹ ਵਿਲੱਖਣ ਨੂੰ ਪੜ੍ਹ ਸਕੇ ਸਿਰਲੇਖ ਜੋ ਕਿ ਫਰੰਟਐਂਡ ਤੋਂ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।
// ASP.NET C# - Modify WCF service to read User-Agent header
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession, ConcurrencyMode = ConcurrencyMode.Multiple)]
[ServiceContract(Namespace = "", SessionMode = SessionMode.Allowed)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class AjaxWebService
{
[OperationContract]
public UsersData[] GetUsers()
{
var userAgent = HttpContext.Current.Request.Headers["User-Agent"];
if (string.IsNullOrEmpty(userAgent))
{
throw new InvalidOperationException("User-Agent header is missing");
}
return this.Service.GetUsers(); // Call WCF service API
}
}
ਕਸਟਮ ਸਿਰਲੇਖਾਂ ਨਾਲ WCF ਸੇਵਾ ਕਾਲ ਦੀ ਜਾਂਚ ਕਰਨ ਵਾਲੀ ਯੂਨਿਟ
ਇਸ ਗੱਲ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਕਿ ਸਿਰਲੇਖ ਨੂੰ ਵੱਖ-ਵੱਖ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਸਹੀ ਢੰਗ ਨਾਲ ਪਾਸ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ, ਇਹ ਸਕ੍ਰਿਪਟ ਇੱਕ ਸਿੱਧੀ ਪੇਸ਼ਕਸ਼ ਕਰਦੀ ਹੈ .
// Unit Test - Testing WCF service with custom headers
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web.Http;
namespace AjaxWebService.Tests
{
[TestClass]
public class AjaxWebServiceTests
{
[TestMethod]
public async Task TestGetUsersWithUserAgentHeader()
{
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "AjaxWebService.svc/GetUsers");
request.Headers.Add("User-Agent", "TestAgent");
var response = await client.SendAsync(request);
Assert.IsTrue(response.IsSuccessStatusCode);
}
}
}
AJAX ਨਾਲ WCF ਸੇਵਾ ਵਿੱਚ ਕਸਟਮ ਸਿਰਲੇਖਾਂ ਨੂੰ ਸੰਭਾਲਣਾ
ਅਸਿੰਕ੍ਰੋਨਸ JavaScript ਬੇਨਤੀਆਂ ਦੇ ਦੌਰਾਨ ਕਸਟਮ HTTP ਸਿਰਲੇਖਾਂ ਦਾ ਸਮਰਥਨ ਕਰਨ ਦੀ ਯੋਗਤਾ ਇੱਕ ਵਿੱਚ WCF ਸੇਵਾਵਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਦਾ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਹਿੱਸਾ ਹੈ ਐਪਲੀਕੇਸ਼ਨ. ਤੁਹਾਨੂੰ ਸਿਰਲੇਖਾਂ ਤੋਂ ਇਲਾਵਾ WCF ਸੇਵਾ ਵਿਸ਼ੇਸ਼ ਕਲਾਇੰਟ ਪਛਾਣ ਜਾਂ ਪ੍ਰਮਾਣੀਕਰਨ ਟੋਕਨ ਭੇਜਣ ਦੀ ਵੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ . ਕਸਟਮ ਸਿਰਲੇਖਾਂ ਦੁਆਰਾ ਕਲਾਇੰਟ ਅਤੇ ਸਰਵਰ ਵਿਚਕਾਰ ਸੁਰੱਖਿਅਤ ਅਤੇ ਸੰਦਰਭ-ਵਿਸ਼ੇਸ਼ ਸੰਚਾਰ ਦੀ ਸਹੂਲਤ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ।
ਤੁਸੀਂ ਉਹਨਾਂ ਮਾਮਲਿਆਂ ਵਿੱਚ AJAX ਬੇਨਤੀ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾ ਕੇ ਅਜਿਹਾ ਕਰ ਸਕਦੇ ਹੋ ਜਿੱਥੇ ਸੇਵਾ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ ਬ੍ਰਾਊਜ਼ਰ-ਵਿਸ਼ੇਸ਼ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲਈ। ਅਜਿਹੇ ਸਿਰਲੇਖਾਂ ਨੂੰ ਅੱਗੇ ਭੇਜਣ ਲਈ, ਅਤੇ ਦੋਵੇਂ ਲੋੜੀਂਦੀ ਲਚਕਤਾ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦੇ ਹਨ। ਪਲੇਟਫਾਰਮ, ਸੰਸਕਰਣ, ਜਾਂ ਸੁਰੱਖਿਆ ਸੰਦਰਭ ਵਰਗੀਆਂ ਕਲਾਇੰਟ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੇ ਅਨੁਸਾਰ ਵਿਵਹਾਰ ਨੂੰ ਨਿਯਮਤ ਕਰਨ ਲਈ WCF ਸੇਵਾ ਦੁਆਰਾ ਲੋੜੀਂਦੇ ਕਿਸੇ ਵੀ ਸਿਰਲੇਖ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਇਸ ਵਿਧੀ ਦਾ ਵਿਸਤਾਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਇਹਨਾਂ ਸਿਰਲੇਖਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸੰਭਾਲਣਾ ਇੱਕ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਕਾਰਕ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਜੇ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਡਿਲੀਵਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਤਾਂ ਟੋਕਨ-ਅਧਾਰਿਤ ਪ੍ਰਮਾਣੀਕਰਨ ਸਿਰਲੇਖ ਜਾਂ ਏਨਕ੍ਰਿਪਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਲਾਜ਼ਮੀ ਹੈ। ਇਹ ਗਾਰੰਟੀ ਦੇਣ ਲਈ ਕਿ WCF ਸੇਵਾ ਅਵੈਧ ਜਾਂ ਗੁੰਮ ਹੈਡਰਾਂ ਨਾਲ ਬੇਨਤੀਆਂ ਨੂੰ ਨਿਮਰਤਾਪੂਰਵਕ ਢੰਗ ਨਾਲ ਹੈਂਡਲ ਕਰਨ ਲਈ ਉਚਿਤ ਗਲਤੀ ਨਾਲ ਨਜਿੱਠਣ ਦੇ ਢੰਗਾਂ ਦਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ। ਆਖਰੀ ਪਰ ਘੱਟੋ-ਘੱਟ ਨਹੀਂ, ਵੱਧ ਤੋਂ ਵੱਧ ਕੁਸ਼ਲਤਾ ਅਤੇ ਕਰਾਸ-ਬ੍ਰਾਊਜ਼ਰ ਅਨੁਕੂਲਤਾ ਲਈ, ਵੱਖ-ਵੱਖ ਦ੍ਰਿਸ਼ਾਂ ਵਿੱਚ ਸਿਰਲੇਖਾਂ ਦੀ ਜਾਂਚ ਜ਼ਰੂਰੀ ਹੈ।
- ਮੈਂ ਇੱਕ XMLHttpRequest ਵਿੱਚ ਕਸਟਮ ਸਿਰਲੇਖ ਕਿਵੇਂ ਜੋੜ ਸਕਦਾ ਹਾਂ?
- ਕਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਨ ਤੋਂ ਬਾਅਦ ਅਤੇ ਬੇਨਤੀ ਜਮ੍ਹਾਂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਤੁਸੀਂ ਕਸਟਮ ਸਿਰਲੇਖ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਤਕਨੀਕ.
- ਉਪਭੋਗਤਾ-ਏਜੰਟ ਸਿਰਲੇਖ ਦੀ ਭੂਮਿਕਾ ਕੀ ਹੈ?
- ਕਲਾਇੰਟ ਦੇ ਬ੍ਰਾਊਜ਼ਰ, ਡਿਵਾਈਸ ਅਤੇ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦਾ ਖੁਲਾਸਾ ਵਿੱਚ ਕੀਤਾ ਗਿਆ ਹੈ ਸਿਰਲੇਖ, ਜੋ WCF ਸੇਵਾ ਨੂੰ ਜਵਾਬਾਂ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨ ਜਾਂ ਜਾਣਕਾਰੀ ਨੂੰ ਰਿਕਾਰਡ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।
- ਕੀ ਮੈਂ ਇੱਕ ਸਿੰਗਲ AJAX ਕਾਲ ਵਿੱਚ ਕਈ ਸਿਰਲੇਖਾਂ ਨੂੰ ਪਾਸ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਹਾਂ, ਤੁਸੀਂ ਇਸ ਨਾਲ ਕਈ ਕਸਟਮ ਸਿਰਲੇਖ ਜੋੜ ਸਕਦੇ ਹੋ ਜਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ jQuery ਵਿੱਚ ਜਾਂ ਵਰਤ ਕੇ ਵਿਕਲਪ setRequestHeader().
- ਜੇਕਰ WCF ਸੇਵਾ ਦੁਆਰਾ ਅਨੁਮਾਨਿਤ ਸਿਰਲੇਖ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਤਾਂ ਕੀ ਹੁੰਦਾ ਹੈ?
- WCF ਸੇਵਾ ਲਈ ਇਹ ਸੰਭਵ ਹੈ ਕਿ ਕੋਈ ਗਲਤੀ ਸੁੱਟੇ ਜਾਂ ਬੇਨਤੀ ਨੂੰ ਗਲਤ ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਲ ਕਰੇ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਕੋਈ ਸਿਰਲੇਖ ਗੁੰਮ ਜਾਂ ਗਲਤ ਨਹੀਂ ਹੈ, ਉਚਿਤ ਗਲਤੀ ਸੰਭਾਲਣ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।
ਉਚਿਤ ਕਲਾਇੰਟ-ਸਰਵਰ ਸੰਚਾਰ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਲਈ ਇਹ ਜਾਣਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਕਿ ਕਸਟਮ ਸਿਰਲੇਖਾਂ ਨੂੰ ਕਿਵੇਂ ਸਪਲਾਈ ਕਰਨਾ ਹੈ, ਜਿਵੇਂ ਕਿ , JavaScript ਤੋਂ WCF ਸੇਵਾ ਨੂੰ ਕਾਲ ਕਰਨ ਵੇਲੇ। ਡਿਵੈਲਪਰਾਂ ਲਈ jQuery ਜਾਂ XMLHttpRequest ਦੀ ਵਰਤੋਂ ਕਰਕੇ AJAX ਸਵਾਲਾਂ ਵਿੱਚ ਇਹਨਾਂ ਸਿਰਲੇਖਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਸਧਾਰਨ ਹੈ।
ਇਸ ਤੋਂ ਇਲਾਵਾ, WCF ਸੇਵਾ ਨੂੰ ਇਹਨਾਂ ਸਿਰਲੇਖਾਂ ਨੂੰ ਪੜ੍ਹਨ ਅਤੇ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦੇਣ ਨਾਲ ਸੁਰੱਖਿਆ ਵਿੱਚ ਸੁਧਾਰ ਹੁੰਦਾ ਹੈ ਅਤੇ ਬੇਨਤੀ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਵਧੇਰੇ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ। ਇਸ ਵਿਧੀ ਦੀ ਪਾਲਣਾ ਕਰਕੇ, ਤੁਸੀਂ ਇਹ ਯਕੀਨੀ ਬਣਾ ਕੇ ਅਨੁਕੂਲਤਾ ਅਤੇ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਵਧਾ ਸਕਦੇ ਹੋ ਕਿ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਕਲਾਇੰਟ ਦੇ ਬ੍ਰਾਊਜ਼ਰ ਜਾਂ ਵਾਤਾਵਰਣ ਤੋਂ ਨਿਰੰਤਰ ਸੁਤੰਤਰ ਚੱਲਦੀ ਹੈ।
- ਦੀ ਵਰਤੋਂ ਬਾਰੇ ਵਿਸਥਾਰ ਨਾਲ ਦੱਸਦਾ ਹੈ WCF ਸੇਵਾਵਾਂ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਅਤੇ AJAX ਬੇਨਤੀਆਂ ਦੁਆਰਾ ਕਸਟਮ ਸਿਰਲੇਖਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ। ਸਰੋਤ: ਮਾਈਕ੍ਰੋਸਾੱਫਟ WCF ਦਸਤਾਵੇਜ਼
- ਵੇਰਵੇ ਕਿਵੇਂ ਵਰਤਣੇ ਹਨ ਅਤੇ ਕਸਟਮ HTTP ਹੈਡਰ ਭੇਜਣ ਲਈ ਜਿਵੇਂ ਕਿ ਯੂਜ਼ਰ-ਏਜੰਟ। ਸਰੋਤ: MDN ਵੈੱਬ ਡੌਕਸ
- ਕਸਟਮ ਸਿਰਲੇਖਾਂ ਨੂੰ ਕੈਪਚਰ ਕਰਨ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਲਈ WCF ਸੇਵਾਵਾਂ ਨੂੰ ਕਿਵੇਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨਾ ਹੈ ਬਾਰੇ ਸਮਝ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਸਰੋਤ: Microsoft WCF ਸੁਨੇਹਾ ਸਿਰਲੇਖ