在子目录中托管WCF Web服务

时间:2011-11-29 21:39:34

标签: c# asp.net wcf web-services

我们的组织有几个WCF Web服务需要作为自己的应用程序托管,但我们希望从单个子域提供服务。

webservs.domain.edu/service1/
webservs.domain.edu/service2/

service1和service2子目录在main(webservs)文件夹中设置为自己的应用程序。问题是,因为子目录是他们自己的应用程序(这是必要的,因为服务都是单独的项目,具有非常不同的功能/代码库),他们无法识别正确的目录结构。

在wsdl文档中,schemaLocation为:

<xsd:import schemaLocation="http://server.department.domain.edu/service1/Service.svc?xsd=xsd0">

但是,正确的路径是:

<xsd:import schemaLocation="http://server.department.domain.edu/webservs/service1/Service.svc?xsd=xsd0">

有人建议将serviceBehavior httpGetUrl属性设置为正确的路径,但是当我这样做时,我会抛出一个异常:'URI已经存在注册'。

是否有人遇到过这个问题,或者对如何实现这个问题有任何想法?

1 个答案:

答案 0 :(得分:0)

您需要在IIS中的“webservs”虚拟目录中定义每个适当的服务作为IIS中的应用程序(即嵌套在它下面)。如果您已经这样做了,您应该可以通过调用http://server.department.domain.edu/webservs/service1/Service.svc?wsdl

来检索wsdl

如果这样做,但schemaLocation仍然错误,请查看此主题:http://forums.silverlight.net/t/20767.aspx/1