SilverLight2.0 DataService WCF 整合在一起的问题

议题:

1.WCF与DataService在一起使用,合适吗?

2.DataService身份验证的Exception?

 

1.WCF与DataService在一起使用,合适吗?

创建DataService时,会在web.config中自动配置一项:

       <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

当WCF与DataService共存时,噢,不好的现象发生;看这张图,是什么,无好激活服务,

噢,不.不.不.WCF无法正常运行了;

image

为什么?就是因为上面这个配置项造成的吗?

    其实WCF 服务在 IIS 中可以与 ASP.NET 并行承载,也可以承载于兼容模式下。默认配置是与 ASP.NET 并行承载。

WCF 服务的请求由 ASP.NET 运行时接收,但它不参与这些请求的处理。在工作进程内,WCF 运行时会检测传入请求并通过 WCF 堆栈对其进行处理。

当 ASP.NET 和 WCF 并行工作时,有一些副作用需要引起注意。例如,您无法定义对 SVC 资源的访问控制列表,而且在此上下文中更为重要的是,当您从 WCF 服务内部进行访问时,HttpContext.Current 属性会始终返回 null。因此,对于 WCF 服务来说,无法获取任何有关 ASP.NET 登录用户的信息。

    通常,WCF 模型被设计为既适用于承载环境,又适用于传输机制。但是,要满足 AJAX 服务层中对安全的要求,WCF 与承载 ASP.NET 环境之间必须实施更为严格的协作。这正是 WCF 的 ASP.NET 兼容模式要解决的问题。

    在兼容模式下运行时,WCF 服务全面介入 ASP.NET 请求的生命周期。产生的实际效果是 WCF 服务有权访问与 ASMX Web 服务相同的信息。这将使基于文件的授权得到支持,而且更为重要的是,HttpContext.Current 得到了正确的设置。

兼容模式是在应用程序级启用的全局设置。但各项服务可以拒绝或接受此模式。要开启兼容模式,需要在配置文件中输入以下片段:

<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>

各项服务通过 AspNetCompatibilityRequirements 属性的 RequirementsMode 属性(将针对服务类而不是约定进行设置)来声明它对兼容模式的支持。该属性的值为 Required、Allowed 和 NotAllowed。默认值为 NotAllowed,这意味着服务层中的每项 WCF 服务都必须将 RequirementsMode 属性改为 AllowedRequired

看到这里知道,原来如此。代码如何做呢?:)

[AspNetCompatibilityRequirements(
RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class Service : IService
{
。。。。
}
看看结果,哎哟。不错不错 
讲了不半天,有关于合适的话题好像还有没有,嗯?!谁知道,谁跟贴:)
 
 
 
2.DataService身份验证的Exception?
异常,噢,又是一个异常,一个黄页。。

image

其实解决很简单,三步走

Listen To Me

Step 1: Ctrl+R then Input Inetmgr

Step 2: unChecked anonymous visit

Step 3: return current project and Redo Create Virtual Directory(this Step is important .Remember it)

image Step 2

image Step3

噢,看看这是什么,结果出来,服务O了。睡觉了。:)

image

转载于:https://www.cnblogs.com/RuiLei/archive/2008/10/31/1324049.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值