<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      同洲共際海讓路@小舟側盼千帆過,揚帆尋她千百度
      +U, 抬頭仰望,低頭思索@同洲共際海讓路

      WCF Part 6 : Address

          讓我們再次回到WCF ABC,這一部分中,我們重點講述服務的地址(address)。為服務指定地址,有多種方法,尤其是多種方法的交叉使用。但是本文只關注三個最重要的方法。此外,不要為本文的篇幅嚇到,其實本文理解起來是非常容易地.

      顯式指定方式
          在第三部分中,我們講到過配置相關的內容,也曾在服務的endpoints中的地址屬性中顯式地配置過服務的地址,一個是服務本身的地址,另外一個是元數據(metadata)的地址。但是我們沒有為WSDL尋址設置任何endpoint。如果我們想啟用http discovery,就必須設置在serviceMetadata行為中進行設置。因為我們并不是使用相對地址,而是想顯示設置它。

      <serviceBehaviors>

        <behavior name="MyServiceBehavior">

          <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8080/Hello/" />

        </behavior>

      </serviceBehaviors>

          通過上面的設置,我們就能馬上通過在服務的根地址后面加上/?wsdl來訪問wsdl了。

      相對方式(Relative)
          基于某些原因,一般情況下,建議使用相對地址的方式。其中一個原因就在于方便管理,相對地址可以避免在配置文件和應用程序中的所有地址變得松散不易管理。在許多用戶的強烈要求下,為了支持相對地址,WCF設計團隊為配置引入了基地址(base addresses)的概念。使用base address,就能變得像下面這樣簡單。

      <system.serviceModel>
        <behaviors>
          <serviceBehaviors>
            <behavior name="MyServiceBehavior">
              <serviceMetadata httpGetEnabled="true" />
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <services>
          <service behaviorConfiguration="MyServiceBehavior" name="Hello">
            <endpoint
              address="Hello"
              binding="basicHttpBinding"
              contract="IHello" />
            <endpoint address="MEX" binding="mexHttpBinding" contract="IMetadataExchange" />
            <host>
              <baseAddresses>
                <add baseAddress="http://localhost:8080/"/>
              </baseAddresses>
            </host>
          </service>
        </services>
      </system.serviceModel>

          如上所示,host節點下面添加了一個base address。下篇文章中,我們將介紹其他的綁定方式,以及如何使用多個base addresses。這樣設置,服務的endpoint,MEX endpoint以及WSDL文檔(通過httpGetEnabled啟用)就都不需要地址了。他們的地址分別如下所示:

      • http://localhost:8080/Hello/
      • http://localhost:8080/MEX/
      • http://localhost:8080/?wsdl

      編程方式指定(Programmatically)
          在引入base address之前,這種方法就是過去最常用的指定地址的方式。在創建一個ServiceHost對象時,可以指定base addresses。當然也可以使用硬編碼的方式,但是實際上我們都不會使用這種方式,因為只要改變了地址,就需要重編譯以及重部署。因此我們就從其他的配置文件中讀取這個信息,下面就是可能使用的一種配置文件:

      <appSettings>
        <add key="httpBindingAddress" value="http://localhost:8080/" />
      </appSettings>

          這樣,我們就能將其傳遞給ServiceHost的構造函數如下所示:

      Type type = typeof(Hello);
       
      string httpBindingAddress = ConfigurationManager.AppSettings["httpBindingAddress"];
      Uri[] baseAddresses = new Uri[] { new Uri(httpBindingAddress) };
       
      using (ServiceHost host = new ServiceHost(type, baseAddresses))
      {
        host.Open();
      }

      多個base addresses(Multiple base addresses)
          這里我們暫且不討論有關綁定和多地址的東西,我們這里重點還是集中在討論地址上,因此這里只是演示一下多個地址是如何實現的,具體的細節以后再講。首先,我們使用編程實現的方式。當然,配置文件的不同鍵就保存著這些不同的地址。示例代碼如下:

      string httpBindingAddress = ConfigurationManager.AppSettings["httpBindingAddress"];
      string nettcpBindingAddress = ConfigurationManager.AppSettings["nettcpBindingAddress"];
       
      Uri httpUri = new Uri(httpBindingAddress);
      Uri nettcpUri = new Uri(nettcpBindingAddress);
       
      Uri[] baseAddresses = new Uri[] { httpUri, nettcpUri };
       
      using (ServiceHost host = new ServiceHost(type, baseAddresses))
      {

          多個地址的使用,也能通過配置文件實現。在相對地址方法中,代碼不需要做任何更改。對比一下下面的配置文件和上面一節中相應的配置文件實現,你就會發現奇妙之處了。需要注意的是,MEX endpoint同時擁有http和net-tcp endpoints的信息。

      <service behaviorConfiguration="MyServiceBehavior" name="Hello">
        <endpoint
          address="httpHello"
          binding="basicHttpBinding"
          contract="IHello" />
        <endpoint
          address="nettcpHello"
          binding="netTcpBinding"
          contract="IHello" />
        <endpoint address="MEX" binding="mexHttpBinding" contract="IMetadataExchange" />
       
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/"/>
            <add baseAddress="net.tcp://localhost:8090/"/>
          </baseAddresses>
        </host>
       
      </service>

          注:要查看原始文章,請看這里的全部索引
      posted on 2007-12-03 22:55  同洲共際海讓路  閱讀(2638)  評論(2)    收藏  舉報

      主站蜘蛛池模板: 久久一区二区中文字幕| 精品国产一区二区三区香| 国产精品亚洲二区在线播放| 久久在线视频免费观看| 国产精品午夜福利视频| 丁香五月亚洲综合深深爱| 国语精品自产拍在线观看网站| 手机| 亚洲精品第一页中文字幕| 国产gaysexchina男外卖| 日韩欧美一中文字暮专区| 亚洲欧美国产精品久久久久久久 | 在线高清免费不卡全码| 日本污视频在线观看| 在线天堂最新版资源| 亚洲成av人片乱码色午夜| 欧美精品在线观看视频| 日本在线 | 中文| 国产资源精品中文字幕| 中国xxx农村性视频| 日韩精品一区二区三区中文无码 | 青春草公开在线视频日韩| 免费午夜无码片在线观看影院| 久久不见久久见免费影院www日本 亚洲综合精品一区二区三区 | 特克斯县| 少妇激情一区二区三区视频| 欧洲美熟女乱又伦AV影片| 少妇人妻偷人精品系列| 国产超碰无码最新上传| 精品国产肉丝袜在线拍国语| 亚洲人成电影在线天堂色| 国产精品成人一区二区不卡| 国精产品999国精产| 在线亚洲午夜片av大片| 在线a级毛片无码免费真人| 泗水县| 又黄又爽又色的少妇毛片| 亚洲女同精品中文字幕| 亚洲人成亚洲人成在线观看| 日韩精品亚洲专在线电影| 国产乱码日产乱码精品精|