前天刚刚重装了系统,装上了Win7,结果在调试的时候,WCF服务Open报错了!

具体错误信息如下:

System.ServiceModel.CommunicationObjectFaultedException: 通信对象 System.Service
Model.Web.WebServiceHost 无法用于通信,因为其处于“出错”状态。
   在 System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout)
   在 System.ServiceModel.ServiceHostBase.System.IDisposable.Dispose()

1. MSDN

MSDN给出的备注是这样的:

调用出错通信对象时引发的 CommunicationObjectFaultedExceptionCommunicationObjectFaultedExceptionSystem.ServiceModel.CommunicationException 的派生类,可以在适当的应用程序中出现。因为调用 ICommunicationObject.Abort 方法的代码通常会报告导致调用 ICommunicationObject.Abort 的错误条件,所以该异常指示调用失败,但最有用的错误消息位于其他位置。

支持平台:

虽然它支持的系统平台中不包括Win7的,但肯定不应该是系统的问题造成的。

线程安全:

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

2. 查看错误信息中的堆栈

从堆栈中返回的信息说是可能TimeOut的问题,但是我是刚启动啊,不可能超时啊...

上网查询了半天也没能找到解决方案,郁闷啊,呵呵。不祥的预感弥漫着,但手上却操作着,关闭Vs2010,然后Vs2010右键,属性->兼容性->以管理员身份运行此程序。

Ok,服务启动正常,不得不感叹Win7的权限机制,唉...

作者: treerain 发表于 2011-08-05 14:24 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"