SilverLight2.0 DataService WCF 整合在一起的问题
2008-10-31 23:50
423 查看
议题:
1.WCF与DataService在一起使用,合适吗?
1.WCF与DataService在一起使用,合适吗?
2.DataService身份验证的Exception?
1.WCF与DataService在一起使用,合适吗?
创建DataService时,会在web.config中自动配置一项:
<serviceHostingEnvironmentaspNetCompatibilityEnabled="true"/>
当WCF与DataService共存时,噢,不好的现象发生;看这张图,是什么,无好激活服务,
噢,不.不.不.WCF无法正常运行了;
为什么?就是因为上面这个配置项造成的吗?
其实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服务有权访问与ASMXWeb服务相同的信息。这将使基于文件的授权得到支持,而且更为重要的是,HttpContext.Current得到了正确的设置。
兼容模式是在应用程序级启用的全局设置。但各项服务可以拒绝或接受此模式。要开启兼容模式,需要在配置文件中输入以下片段:
<system.serviceModel> <serviceHostingEnvironmentaspNetCompatibilityEnabled="true"/> </system.serviceModel>
各项服务通过AspNetCompatibilityRequirements属性的RequirementsMode属性(将针对服务类而不是约定进行设置)来声明它对兼容模式的支持。该属性的值为Required、Allowed和NotAllowed。默认值为NotAllowed,这意味着服务层中的每项WCF服务都必须将RequirementsMode属性改为Allowed或Required。
看到这里知道,原来如此。代码如何做呢?:)
[AspNetCompatibilityRequirements( RequirementsMode=AspNetCompatibilityRequirementsMode.Required)] publicclassService:IService { 。。。。 }
看看结果,哎哟。不错不错
讲了不半天,有关于合适的话题好像还有没有,嗯?!谁知道,谁跟贴:)
2.DataService身份验证的Exception?
异常,噢,又是一个异常,一个黄页。。
其实解决很简单,三步走
ListenToMe
Step1:Ctrl+RthenInputInetmgr
Step2:unCheckedanonymousvisit
Step3:returncurrentprojectandRedoCreateVirtualDirectory(thisStepisimportant.Rememberit)
Step2
Step3
噢,看看这是什么,结果出来,服务O了。睡觉了。:)
相关文章推荐
- 关于WCF,DataService中,查找模型对象时,主键含有数值时找不到对象问题处理
- 稳扎稳打Silverlight(23) - 2.0通信之调用WCF的双向通信(Duplex Service)
- SilverLight中使用WCF Ria出现的问题empty domain service class
- WcfDataService with EntityFramework 6 的若干问题
- 稳扎稳打Silverlight(23) - 2.0通信之调用WCF的双向通信(Duplex Service)
- Silverlight WCF RIA Service也遭遇了一次编码问题
- Silverlight通过Wcf Data Service访问数据库之ADO.NET Entity Framework篇
- 用 linq to sql+wcf service+datagrid 创建基本的silverlight2.0应用程序
- Pushing Data to a Silverlight Client with a WCF Duplex Service
- Pushing Data to a Silverlight Client with a WCF Duplex Service
- 上接稳扎稳打Silverlight(23) - 2.0通信之调用WCF的双向通信(Duplex Service)
- 稳扎稳打Silverlight(23) - 2.0通信之调用WCF的双向通信(Duplex Service)
- [转]Consuming a OData Service in a Client Application (WCF Data Services)
- IXmlSerializable With WCF---Data Transfer in Service Contracts
- 笔记-Silverlight使用WCF RIA SERVICE实现CUD
- WCF Data Service 使用小结(二) —— 使用WCF Data Service 创建OData服务
- WCF学习问题之“net.tcp://localhost/service/”不支持正在使用的 .Net 组帧模式。有关详细信息,请参见服务器日志。
- Silverlight 2 RTW中ToolTipService.ToolTip不继承父节点的DataContext的问题
- Silverlight RIA Service部署到IIS6的步骤或问题。
- WCF Data Service 的.NET Client 的不支持原生类型服务操作的解决方法