gpt4 book ai didi

.net - 直接浏览时 WCF 元数据不可用

转载 作者:行者123 更新时间:2023-12-01 12:58:20 25 4
gpt4 key购买 nike

当我浏览到 .svc 时,我不断收到错误消息:当前已禁用此服务的元数据发布。

我已遵循错误页面上列出的所有说明(添加行为、引用行为、添加 mex 端点、尝试使用和不使用基地址),以及 MSDN 上的说明:http://msdn.microsoft.com/en-us/library/ms734765.aspx (几乎相同,但包括政策版本)。我什至删除了我的配置文件,只留下了这些东西——它根本没有任何区别。我已经确认正在使用配置文件(即在其中犯了一个错误,并且错误发生了变化)。

部分看起来像:

<system.serviceModel>
<services>
<service name="HoldingService" behaviorConfiguration="SimpleServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost/xxxx.cdf.holding/HoldingService.svc"/>
</baseAddresses>
</host>
<endpoint address=""
binding="basicHttpBinding"
contract="Xxx.Xxxx.Schema.Service.Cdf.Holding.IHoldingService" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SimpleServiceBehavior">
<serviceMetadata httpGetEnabled="True" policyVersion="Policy15" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>

有什么办法可以解决或调试这个问题吗?

最佳答案

我设法解决了这个问题。问题是 name="HoldingService"。即使 .svc 与 .config 在同一个项目中,它也需要完全限定(即 name="Xxx.Xxxx.Web.Cdf.Holding.HoldingService")。

最终的代码看起来像这样并且完美地工作:

<system.serviceModel>
<services>
<service name="Xxx.Xxxx.Web.Cdf.Holding.HoldingService" behaviorConfiguration="SimpleServiceBehavior">
<endpoint address=""
binding="basicHttpBinding"
contract="Xxx.Xxxx.Schema.Service.Cdf.Holding.IHoldingService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SimpleServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>

顺便说一句,我最终解决这个问题的方法是使用“Microsoft 服务配置编辑器”(可通过​​ Tools > WCF Service Configuration Editor 在 VS2010 中访问) .我不知道这个存在,一直在手工切割配置。

感谢 Michael 的建议 - 他们清理了很多代码。

关于.net - 直接浏览时 WCF 元数据不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8335163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com