如何开启编译在bin中的WCF服务?
环境如下:
web站点引用dll
在dll中有wcf服务的类的实现,例如
[ServiceContract]
public interface ICommunictionService
{
[OperationContract]
void DoWork();
}
public class CommunictionService : ICommunictionService
{
public void DoWork()
{
}
}
对于WCF的配置,没有使用app.config,而是自己通过编程方式配置,大致如下
ServiceHost host=new ServiceHost();
然后创建WSHttpBinding binding
并对其进行配置
然后添加终结点
host.AddServiceEndpoint(typeof(ICommunictionService), binding, serviceAddress);
这里的serviceAddress使用了网站的域名http://www.xxx.xom/WCF/CommunictionService/并且这个地址也用在了元数据说明ServiceMetadataBehavior中
最后再站点的页面上调用host.Open()方法
报错“HTTP 无法注册 URL http://+:80/WCF/CommunictionService/。进程不具有此命名空间的访问权限(有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=70353)。”
可是我还是不想吧WCF服务的实现放在AppCode中。
在WinForm中以上做法不会报错,应用程序会自己host一个http服务器,但是在IIS中失败,我的VS2008是管理员权限运行的,站点所在目录设置了Everyone完全权限,也还是这个错误。不知道怎么解决。
请指教。