WCF和IIS宿主的ASP.NET 共享会话

简介:

1. 建立WCF工程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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文件

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

3. 修改web.config

主要是添加<serviceHostingEnvironment aspNetCompatibilityEnabled="true"></serviceHostingEnvironment> ,还有allwoCookies一定要设为true.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<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>
<a href= "http://files.cnblogs.com/cnblogsfans/WCFASPSession.rar" >Demo Sample source code</a>
本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2010/05/18/1738227.html如需转载请自行联系原作者

王德水
相关文章
|
开发框架 安全 .NET
IIS服务器发布ASP.NET项目
对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以IIS服务器发布ASP.NET项目为例。
186 1
|
存储 开发框架 .NET
Windows IIS中asp的global.asa全局配置文件使用说明
Windows IIS中asp的global.asa全局配置文件使用说明
232 1
|
开发框架 .NET API
在IIS上部署ASP.NET Core Web API和Blazor Wasm详细教程
在IIS上部署ASP.NET Core Web API和Blazor Wasm详细教程
687 3
|
开发框架 .NET Apache
301重定向代码合集(iis,asp,php,asp.net,apache)
301重定向代码合集(iis,asp,php,asp.net,apache)
393 0
|
开发框架 安全 .NET
『部署实操』使用 IIS 在 Windows 上托管 ASP.NET Core
使用 IIS 在 Windows 上托管 ASP.NET Core
1114 0
『部署实操』使用 IIS 在 Windows 上托管 ASP.NET Core
|
文件存储 SQL .NET
在 NAS SMB 卷上用 Visual Studio 调试 ASP.NET + SQLServer 项目并部署到 IIS 服务
阿里云 NAS SMB 卷具有高可用高吞吐大容量等特点,可以很好地解决网站和数据库项目的存储问题。本文将介绍如何在 NAS SMB 卷上用 Visual Studio 调试 ASP.NET + SQLServer 项目并把项目部署到 IIS 服务作为正式服务开放出去。
2784 0
在 NAS SMB 卷上用 Visual Studio 调试 ASP.NET + SQLServer 项目并部署到 IIS 服务
|
Web App开发 .NET C++
使用 IIS 在 Windows 上托管 ASP.NET Core2.0
原文:使用 IIS 在 Windows 上托管 ASP.NET Core2.0 准备: 操作系统:Windows Server 2008 R2 或更高版本 开发环境:VS2017 第一步:新建项目ASP.NET Core Web应用程序 在 Visual Studio 中,选择“文件”>“新建”>“项目”。
1394 0
|
3月前
|
网络安全 Windows
Windows IIS 10如何配置自签名SSL并实现自动跳转
本文记录了IIS配置自签名证书及HTTPS跳转的注意事项。包括解决443端口占用问题、URL Rewrite插件安装与配置、web.config修改方法,以及避免因旧教程导致的配置错误。
Windows IIS 10如何配置自签名SSL并实现自动跳转
|
网络协议
windows_server2012搭建iis并配置http重定向 iis转发
windows_server2012搭建iis并配置http重定向 iis转发
712 1
【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
206 2

热门文章

最新文章