2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
यतः ग्राहकस्य मूल HTTP पृष्ठभागसेवाम् https समर्थयति इति सेवायां उन्नयनं कर्तुं आवश्यकं भवति, यतः मूल HTTP सेवा WINDOWS सेवायाः अन्तःनिर्मित HTTP श्रवणसेवायाः आधारेण कार्यान्विता भवति, तथा च https समर्थयति न, अन्यवत् अपि नास्ति IIS मध्ये परिनियोजिताः WebAPIs HTTPS प्रमाणपत्रं प्रत्यक्षतया सेवा इव लोड् भवति, अतः अत्र भवद्भिः https समर्थनार्थं मूलसेवा परिवर्तनं करणीयम् अस्ति तथा च सर्वरवातावरणे HTTPS पोर्ट् बाइंडिंग् सेटिंग्स् कर्तुं आवश्यकम् अस्ति, यथा निम्नलिखितम्:
(टिप्पणी: निम्नलिखितक्रियाणां कृते आवश्यकं यत् भवतः समीपे पूर्वमेव HTTPS प्रमाणपत्रं भवति।)
1. प्रमाणपत्रं संस्थापयन्तु, pfx सञ्चिकायां द्विवारं क्लिक् कृत्वा, एतत् संस्थापयन्तु: "स्थानीय सङ्गणक”–>“व्यक्तिगत”;
2. उद्घाटयितुं द्विवारं क्लिक् कुर्वन्तुcrtप्रमाणपत्रं, विस्तृतसूचनायां अङ्गुलिचिह्नसम्बद्धानि सूचनानि (certhash) द्रष्टुं शक्नुवन्ति;
3. पोर्ट् बाइंडिंग् (पूर्वनिर्धारित पोर्ट् 443) कुर्वन्तु ।
netsh http add sslcert ipport=0.0.0.0:8080 certhash=指纹 appid={程序GUID/newguid} clientcertnegotiation=enable
4. सर्वर प्रोग्राम कार्यान्वयनम् : १.
- using System;
- public class HttpService
- {
- public MyHttpServer()
- {
- System.Net.HttpListener httpListener = new System.Net.HttpListener();
- httpListener.AuthenticationSchemes = System.Net.AuthenticationSchemes.Anonymous;
- httpListener.Prefixes.Add("https://*:8000/"); // 支持https
- httpListener.Start();
- new System.Threading.Thread(new System.Threading.ThreadStart(delegate
- {
- while (true)
- {
- try
- {
- System.Net.HttpListenerContext httpListenerContext = httpListener.GetContext();
- new System.Threading.Thread(new System.Threading.ParameterizedThreadStart((input) =>
- {
- System.Net.HttpListenerContext ctx = (System.Net.HttpListenerContext)input;
- System.Net.HttpListenerRequest request = ctx.Request;
- string pram = request.QueryString["Data"];//Get入参
- string responseMessage = string.Empty;//返回值
- if (!string.IsNullOrEmpty(pram))
- {
- //Get入参
- pramOrg = pram;
- pram = System.Web.HttpUtility.UrlDecode(pram);
- }
- //POST入参
- if (request.HttpMethod == "POST")
- {
- //处理业务请求
- StreamReader reader = new StreamReader(request.InputStream, Encoding.UTF8);
- pram = reader.ReadToEnd();
- reader.Close();
- reader.Dispose();
- }
- #region 业务处理
- try
- {
- //业务处理
- responseMessage = "业务结果";
- }
- catch (Exception ex)
- {
- //异常处理
- responseMessage = ex.Message;
- }
- #endregion 业务处理
- #region 返回给调用者
- //输出类型
- httpListenerContext.Response.ContentType = "text/html; charset=UTF-8";
- //返回状态
- httpListenerContext.Response.StatusCode = 200;
- //设置授权,尝试解决Jquery跨域问题
- //httpListenerContext.Response.Headers["Access-Control-Allow-Origin"] = "*";
- //httpListenerContext.Response.Headers["Access-Control-Allow-Methods"] = "GET,POST";
- //httpListenerContext.Response.Headers["Access-Control-Max-Age"] = "1000";
- try
- {
- //输出界面内容
- if (!string.IsNullOrEmpty(responseMessage))
- {
- //返回文本内容
- using (StreamWriter writer = new StreamWriter(httpListenerContext.Response.OutputStream))
- {
- writer.Write(responseMessage);
- }
- }
- }
- catch
- {
- //刷新太快异常,不做处理
- }
- #endregion 返回给调用者
- })).Start(httpListenerContext);
- }
- catch
- { }
- }
- })).Start();
- }
- }
यदि उपरि पोर्ट् बाइंडिंग् प्रक्रियायाः समये त्रुटिः निवेदिता अस्ति, अथवा परिवर्तनं विफलं भवति, तर्हि भवान् निम्नलिखितप्रक्रियाकरणं सन्दर्भयितुं शक्नोति ।
1. netsh आदेशस्य पैरामीटर्स् सम्यक् सन्ति वा इति पश्यन्तु;
2. SSL प्रमाणपत्रं योजयितुं असफलम्, त्रुटिः: 1312 निर्दिष्टं प्रवेशसत्रं नास्ति । समाप्तं जातं स्यात् । प्रसंस्करणविधिः : १.
कीबोर्ड WIN+R इति कृत्वा mmc.exe इति प्रविष्टं कुर्वन्तु, यथा:
'OK' नुदन्तु, ततः निम्नलिखितम् console root node interface pop up भविष्यति:
File->Add/Delete Snap-in इति चिनोतु, अथवा निम्नलिखित-पॉप-अपं पॉप-अप कर्तुं तथा च कार्यं कर्तुं प्रत्यक्षतया शॉर्टकट्-कुंजी ctrl+m इत्यस्य उपयोगं कुर्वन्तु:
ततः व्यक्तिगत आयातप्रमाणपत्रं प्रति गच्छन्तु
अन्ते SSL प्रमाणपत्रं पोर्ट् सङ्ख्यायां बाइण्ड् कुर्वन्तु
netsh http add sslcert ipport=0.0.0.0:8080 certhash=指纹 appid={程序GUID/newguid} clientcertnegotiation=enable