C# 强制WCF WebService中的WSDL使用相对路径

C# 强制WCF WebService中的WSDL使用相对路径,c#,.net,web-services,wcf,C#,.net,Web Services,Wcf,有没有办法使我的WSDL中的模式位置是相对的而不是绝对的??我一直在寻找解决方案,我在学习更多关于Wsdl生成的知识,但我还没有找到可以在哪里配置Wsdl的这一部分(请参阅突出显示的内容) vs 我希望这是一条相对的道路 我相信可能有一种方法可以在网络配置中强制实现这一点,我只是还没有在网上找到解决方案。如果这是可能的话,任何帮助都将不胜感激。如果不可能,我也会接受这一解决方案。谢谢 很抱歉这封信迟交。我因其他一些问题被拉到一边。因此,对于我的解决方案,我必须创建自己的WSDL并将其保存在本

有没有办法使我的WSDL中的模式位置是相对的而不是绝对的??我一直在寻找解决方案,我在学习更多关于Wsdl生成的知识,但我还没有找到可以在哪里配置Wsdl的这一部分(请参阅突出显示的内容)

vs

我希望这是一条相对的道路


我相信可能有一种方法可以在网络配置中强制实现这一点,我只是还没有在网上找到解决方案。如果这是可能的话,任何帮助都将不胜感激。如果不可能,我也会接受这一解决方案。谢谢

很抱歉这封信迟交。我因其他一些问题被拉到一边。因此,对于我的解决方案,我必须创建自己的WSDL并将其保存在本地。基本上,您可以从WebService生成的文件开始,然后将其保存为.WSDL文件。编辑你需要的。如果您像我一样需要相对路径,我只需添加相对路径并将其保存在webservice应用程序的根目录中。它是这样的:

using the standard link http://localhost:52038/Service1.svc?wsdl
-<xsd:schema targetNamespace="http://tempuri.org/Imports">

   <xsd:import namespace="http://tempuri.org/"schemaLocation="http://localhost:52038/Service1.svc?xsd=xsd0"/>

   <xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" schemaLocation="http://localhost:52038/Service1.svc?xsd=xsd1"/>

</xsd:schema> 
使用标准链接http://localhost:52038/Service1.svc?wsdl
-
我将schemaLocations保存到本地WSDL,并将其更改为相对路径,如下所示:

-<xsd:schema targetNamespace="http://tempuri.org/Imports">

   <xsd:import namespace="http://tempuri.org/" schemaLocation="xsd0.xsd"/>

   <xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" schemaLocation="xsd1.xsd"/>

</xsd:schema>
-
然后我在web.config中禁用了serviceMetaData“httpGetEnabled=False”,因此WebService将不再生成WSDL。如果我现在将这个WSDL分发给消费者,我会给他们定制本地WSDL的路径


关于这个话题,我肯定还有很多话要说,但我想分享一下我在这里所做的。免责声明,这只是一个关于一般POC的示例项目。谢谢大家!

第一个问题。。。你为什么要这么做?这是一个标准,我们有一个来自IBM的设备,我们通过它来路由流量,希望我们使用相对路径。我不确定在这一点上你会称之为标准,但我们被要求使用相对路径。用于设置相对路径的设备,最近的固件更新已停止此操作。目前,我们正试图从我们的角度解决这个问题。说来话长。我只是想知道这是否可行。感谢不确定,但看看这是否是您试图在答案中实现的,它只是建议这样,“使用新的xsd相对路径更新您的wsdl……只需将xsd的整个链接替换为其名称。”我们不确定这是如何实现的,我不知道文中提到的。我是否遗漏了一些关于您将如何更新路径的明显信息。我已经尝试使用相对路径(即“endpoint address=“Service1.svc”)更新我的端点地址。它仍然是绝对路径,就像我的端点地址一样。可能值得您自己添加答案并将该链接作为参考