首頁 > 後端開發 > php教程 > WebService連接埠號碼修改

WebService連接埠號碼修改

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-08-08 09:28:25
原創
1737 人瀏覽過

C#中使用webservice介面的時候,返給伺服器的IP位址是帶了連接埠號碼的。但是有時候不能要那個連接埠(例如用nginx做了轉送),就需要在服務端處理一下(處理內容就是後面的程式碼)。此外,需要在設定檔web.config中的system.web中加入一些東西:

webServices>

name=

"

HttpGet"/>/>/>

/>/>/> name

="HttpPost"/>/>

/>/>

/>/>

name="HttpSoap"/>

soapExtensionReflectorTypes

>

add

type="

CommMethod.OuterPortReflector,CommMethod

"

/>


"

/>

.




webServices

>


註:1.type內容是類別名,包名。這點和msdn上的那個人寫的有些不同(有可能是版本的問題)(http://blogs.msdn.com/b/kaevans/archive/2005/11/16/493496.aspx)。

         2.如果沒有protocols中的內容的話,有可能post和get請求不能被正確識別(未做過驗證,只是在博客園上看見過類似問題)。

         3.stackoverflow來源位址:http://stackoverflow.com/questions/1531448/asp-net-web-service-changes-port-on-invoke





/---- -------------------------------------------------- -----------------
//
// * Copyright (C)
// * version :
/ / * author  : ying83811
// * FileName: OuterPortReflector.cs
// * history : created by ying83811
//

//----------------- -------------------------------------------------- ----
using System;
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Linq;

using System.Text;🎜using System.Web.Services.Description;🎜namespace Better517Na.KoreaProductInterfaceface. / 🎜    /// OuterPortReflector類別🎜    /// 🎜    public class OuterPortReflector : SoapExtension     /// 重寫ReflectMethod🎜        /// 🎜        public override void ReflectMethod()🎜        {🎜        }🎜        //   🎜        public override void ReflectDescription()🎜        {🎜

            //  為了說明問題,而這裡直接將連接埠號碼寫死了,建議寫在檔案中
           " + portNum;
            ServiceDescription description = ReflectionContext.ServiceDescription;
            foreach (         Service service in description.Services)
            {
                foreach (Port port in service.Ports)
                {
                    foreach (ServiceDescriptionFormatExtension extension in port.Extensions)
                    {
                        SoapAddressBinding binding = extension as SoapAddressBinding;
                        if (null != binding)
{
                            binding.Location = binding.Location.Replace(portNum, string.Empty);
                        }
                        else
                        {
                            HttpAddressBinding httpBinding = extension as HttpAddressBinding;
                            if (httpBinding != null)
                            {
                                httpBinding.Location = httpBinding. Location.Replace(portNum, string.Empty);
                            }
                            else
                            {
                                Soap12AddressBinding soap12Binding = extension as Soap12AddressBinding;
                                if (soap12Binding != null)
                                {
                                    soap12Binding.Location = soap12Binding.Location.Replace(portNum, string. Empty);
                                }}
                            }
      }                }
               
}




以上就介紹了WebService連接埠號碼修改,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
javascript - js正規符合特定字串
來自於 1970-01-01 08:00:00
0
0
0
為什麼說非物件呼叫成員函數fetch()
來自於 1970-01-01 08:00:00
0
0
0
資料庫設定檔必須要用二維數組
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板