WCF和IIS宿主的ASP.NET 共用工作階段

來源:互聯網
上載者:User

1. 建立WCF工程

using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.Text;using System.Web;using System.ServiceModel.Activation;namespace WCFASPSession{    [AspNetCompatibilityRequirements(RequirementsMode =        AspNetCompatibilityRequirementsMode.Allowed)]    public class Service1 : IService1    {               public int Add(int value)        {            int result = GetResult() + value;            HttpContext.Current.Session["Result"] = result;            return result;        }        public int GetResult()        {            if (HttpContext.Current.Session["Result"] == null)            {                HttpContext.Current.Session["Result"] = 0;            }            return (int)HttpContext.Current.Session["Result"];        }    }}

2. 在web工程裡建一個.svc檔案

<%@ ServiceHost Language="C#" Debug="true" Service="WCFASPSession.Service1"  %>

3. 修改web.config

主要是添加<serviceHostingEnvironment aspNetCompatibilityEnabled="true"></serviceHostingEnvironment> ,還有allwoCookies一定要設為true.

<system.serviceModel>    <bindings>      <wsHttpBinding>        <binding name="WSHttpBinding_IService1"  closeTimeout="00:01:00"          openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"          bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"          maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"          textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="true">          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"            maxBytesPerRead="4096" maxNameTableCharCount="16384" />          <reliableSession ordered="true" inactivityTimeout="00:10:00"            enabled="false" />          <security mode="Message">            <transport clientCredentialType="Windows" proxyCredentialType="None"              realm="" />            <message clientCredentialType="Windows" negotiateServiceCredential="true"              algorithmSuite="Default" />          </security>        </binding>      </wsHttpBinding>    </bindings>    <client>      <endpoint address="http://localhost:8000/Service1.svc" binding="wsHttpBinding"        bindingConfiguration="WSHttpBinding_IService1" contract="ServiceReference1.IService1"        name="WSHttpBinding_IService1">        <identity>          <dns value="localhost" />        </identity>      </endpoint>    </client>    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"></serviceHostingEnvironment>    <services>      <service name="WCFASPSession.Service1">        <endpoint address="" binding="wsHttpBinding" contract="WCFASPSession.IService1">          <!--               Upon deployment, the following identity element should be removed or replaced to reflect the               identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity               automatically.          -->          <identity>            <dns value="localhost"/>          </identity>        </endpoint>        <!-- Metadata Endpoints -->        <!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->        <!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>      </service>    </services>    <behaviors>      <serviceBehaviors>        <behavior>          <!-- To avoid disclosing metadata information,           set the value below to false and remove the metadata endpoint above before deployment -->          <serviceMetadata httpGetEnabled="True"/>          <!-- To receive exception details in faults for debugging purposes,           set the value below to true.  Set to false before deployment           to avoid disclosing exception information -->          <serviceDebug includeExceptionDetailInFaults="False"/>        </behavior>      </serviceBehaviors>    </behaviors>  </system.serviceModel>Demo Sample source code
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.