c# - 在子目录中托管 WCF Web 服务

标签 c# asp.net wcf web-services

我们的组织有多个 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 属性设置为正确的路径,但是当我这样做时,我抛出了一个异常:'A registration already exists for URI'。

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

最佳答案

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

如果这有效,但 schemaLocation 仍然错误,请查看此线程:http://forums.silverlight.net/t/20767.aspx/1

关于c# - 在子目录中托管 WCF Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8318109/

相关文章:

C# 单链表求和方法

c# - 如何从 RGB 代码中获取画笔?

c# - Firefox 中的 Google map Api 共享位置问题

c# - DTO 的自定义数组项名称

c# - 我可以将 WCF Web 服务限制为仅来自特定域的调用吗?

c# - Azure WCF 服务无法连接到 SQL Azure

c# - 如何获取 Windows 服务打开的端口?

c# - ConfigurationBuilder 无法在 azure 函数中工作

c# - ASP.Net GridView 5000 条记录

asp.net - 禁用javascript中的复选框并将其识别为在服务器端选中