我们的组织有几个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已经存在注册'。
是否有人遇到过这个问题,或者对如何实现这个问题有任何想法?
答案 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