在子目录中托管WCF web服务

本文关键字:WCF web 服务 子目录 | 更新日期: 2023-09-27 18:16:13

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

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

service1和service2子目录在主(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'。

有没有人遇到这个问题或有什么想法如何实现这个?

在子目录中托管WCF web服务

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

来检索wsdl。

如果这是工作,但schemaLocation仍然是错误的,检查这个线程:http://forums.silverlight.net/t/20767.aspx/1