informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Karena pelanggan perlu mengupgrade layanan backend HTTP asli ke layanan yang mendukung https, karena layanan HTTP asli diimplementasikan berdasarkan layanan mendengarkan HTTP bawaan dari layanan WINDOWS, dan tidak mendukung https, juga tidak seperti lainnya WebAPI disebarkan di IIS. Sertifikat HTTPS dimuat langsung seperti layanan, jadi di sini Anda perlu memodifikasi layanan asli untuk mendukung https dan melakukan pengaturan pengikatan port HTTPS pada lingkungan server, sebagai berikut:
(Catatan: Operasi berikut mengharuskan Anda sudah memiliki sertifikat HTTPS.)
1. Instal sertifikat, klik dua kali file pfx, dan instal ke: "komputer lokal”–>“pribadi”;
2. Klik dua kali untuk membukacrtSertifikat, Anda dapat melihat informasi terkait sidik jari (certhash) di informasi rinci;
3. Lakukan pengikatan port (port default 443)
netsh http add sslcert ipport=0.0.0.0:8080 certhash=指纹 appid={程序GUID/newguid} clientcertnegotiation=enable
4. Implementasi program server:
- 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();
- }
- }
Jika kesalahan dilaporkan selama proses pengikatan port di atas, atau penambahan gagal, Anda dapat merujuk ke pemrosesan berikut:
1. Periksa apakah parameter perintah netsh sudah benar;
2. Gagal menambahkan sertifikat SSL, kesalahan: 1312 Sesi login yang ditentukan tidak ada. Ini mungkin telah dihentikan. Metode pemrosesan:
Keyboard WIN+R dan masukkan mmc.exe, sebagai berikut:
Klik 'OK', dan antarmuka simpul akar konsol berikut akan muncul:
Pilih File->Tambah/Hapus Snap-in, atau langsung gunakan tombol pintasan ctrl+m untuk memunculkan pop-up berikut dan melakukan operasi:
Lalu pergi ke sertifikat impor pribadi
Terakhir ikat sertifikat SSL ke nomor port
netsh http add sslcert ipport=0.0.0.0:8080 certhash=指纹 appid={程序GUID/newguid} clientcertnegotiation=enable