gpt4 book ai didi

c# - 尝试在 ASP.NET 网站中托管时出现 WCF 服务异常错误

转载 作者:行者123 更新时间:2023-11-30 13:49:31 24 4
gpt4 key购买 nike

尝试浏览我的 .svc 文件时出现以下错误。

An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
System.NullReferenceException: Object reference not set to an instance of an object.
at System.ServiceModel.Description.WsdlExporter.CreateWsdlBindingAndPort(ServiceEndpoint endpoint, XmlQualifiedName wsdlServiceQName, Port& wsdlPort, Boolean& newBinding, Boolean& bindingNameWasUniquified)
at System.ServiceModel.Description.WsdlExporter.ExportEndpoint(ServiceEndpoint endpoint, XmlQualifiedName wsdlServiceQName)
at System.ServiceModel.Description.WsdlExporter.ExportEndpoints(IEnumerable`1 endpoints, XmlQualifiedName wsdlServiceQName)
at System.ServiceModel.Description.ServiceMetadataBehavior.MetadataExtensionInitializer.GenerateMetadata()
at System.ServiceModel.Description.ServiceMetadataExtension.EnsureInitialized()
at System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.InitializationData.InitializeFrom(ServiceMetadataExtension extension)
at System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.GetInitData()
at System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.TryHandleDocumentationRequest(Message httpGetRequest, String[] queries, Message& replyMessage)
at System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.ProcessHttpRequest(Message httpGetRequest)
at System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.Get(Message message)
at SyncInvokeGet(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

这是我的 web.config 配置:

  <system.serviceModel>
<services>
<service name="WcfServiceLib.WcfService"
behaviorConfiguration="Default">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/WebService"/>
</baseAddresses>
</host>
<!-- Service Endpoints -->
<!-- Unless fully qualified, address is relative to base address supplied above -->
<endpoint address="" binding="wsHttpBinding" contract="WcfServiceContractLib.IWcfContract"/>
<endpoint address="web" binding="webHttpBinding" contract="WcfServiceContractLib.IWcfContract"
behaviorConfiguration="web"/>
<endpoint address="webJson" binding="webHttpBinding" contract="WcfServiceContractLib.IWcfContract"
behaviorConfiguration="webJson"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp defaultOutgoingResponseFormat="Xml" helpEnabled="true"/>
</behavior>
<behavior name="webJson">
<webHttp defaultOutgoingResponseFormat="Json" helpEnabled="true"/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="Default">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled ="true" />
</system.serviceModel>

谁有类似情况?

我应该提到,当它托管在我用来运行测试的控制台应用程序中时,一切都很好。

[编辑] 尝试在控制台应用程序中加载服务时发生同样的错误。不显示 WCF 网页,您可以在其中查看 wsdl 信息等...

最佳答案

如果您正在使用 .NET 4.0 并尝试同时托管 SOAP、Xml 和 Json 端点,您将遇到异常。只需注释掉您的 Json 或 Xml 端点,就可以正常工作。

这是我在 Microsoft Connect 上提出的一个已知问题并且 MS 开发团队已将其关闭,因为无法修复。

为了同时支持 Json 和 Xml,如果客户端在请求中仅传递所需的 Accept header ,如“application/xml”或“application/json”,框架会自动处理它并以适当的格式发回响应。

关于c# - 尝试在 ASP.NET 网站中托管时出现 WCF 服务异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9307750/

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