WCF服务在iis 5.1中工作但不在iis 6中工作

时间:2011-01-13 15:13:25

标签: wcf iis-5

我开发了一个WCF服务和silverlight客户端,当我在具有iis 5.1的windows xp中托管此服务时,它完全按预期工作。

当我在拥有iis 6的Windows Server 2003 R2中托管时,它会在最后几分钟(约20分钟)内工作,之后它就会停止工作..

我在访问服务时收到HTTP 500.

我使用的设置是

检查匿名访问和集成身份验证。

我的服务配置如下

<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior name="">
      <serviceMetadata httpGetEnabled="false"/>
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<bindings>
  <customBinding>
    <binding name="SilverlightApplication1.Web.GetData.customBinding0">
      <binaryMessageEncoding/>
      <httpTransport/>
    </binding>
  </customBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
<services>
  <service name="SilverlightApplication1.Web.GetData">
    <endpoint address="" binding="customBinding" bindingConfiguration="SilverlightApplication1.Web.GetData.customBinding0" contract="SilverlightApplication1.Web.GetData"/>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>

我的silverlight客户端配置

<client>
        <endpoint address="----/InternalBorrow/GetData.svc"
            binding="customBinding" bindingConfiguration="CustomBinding_GetData"
            contract="ServiceReference1.GetData" name="CustomBinding_GetData" />
    </client>

任何人都可以帮我解决问题吗?

我得到的例外是

 System.ServiceModel.Activation.HostedAspNetEnvironment.ValidateHttpSettings(String virtualPath, Boolean isMetadataListener, Boolean usingDefaultSpnList, AuthenticationSchemes& supportedSchemes, ExtendedProtectionPolicy& extendedProtectionPolicy, String& realm)at System.ServiceModel.Channels.HttpChannelListener.ApplyHostedContext(String virtualPath, Boolean isMetadataListener)

at System.ServiceModel.Activation.HostedAspNetEnvironment.ApplyHostedContext(TransportChannelListener listener, BindingContext context)

at System.ServiceModel.Channels.HttpTransportBindingElement.BuildChannelListener[TChannel](BindingContext context)

at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()

at System.ServiceModel.Channels.MessageEncodingBindingElement.InternalBuildChannelListener[TChannel](BindingContext context)

at System.ServiceModel.Channels.BinaryMessageEncodingBindingElement.BuildChannelListener[TChannel](BindingContext context)

at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()

at System.ServiceModel.Channels.Binding.BuildChannelListener[TChannel](Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, BindingParameterCollection parameters)

at System.ServiceModel.Description.DispatcherBuilder.MaybeCreateListener(Boolean actuallyCreate, Type[] supportedChannels, Binding binding, BindingParameterCollection parameters, Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, ServiceThrottle throttle, IChannelListener& result, Boolean supportContextSession)

at System.ServiceModel.Description.DispatcherBuilder.BuildChannelListener(StuffPerListenUriInfo stuff, ServiceHostBase serviceHost, Uri listenUri, ListenUriMode listenUriMode, Boolean supportContextSession, IChannelListener& result)

at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost)

at System.ServiceModel.ServiceHostBase.InitializeRuntime()

at System.ServiceModel.ServiceHostBase.OnBeginOpen()

at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)

at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)

at System.ServiceModel.Channels.CommunicationObject.Open()

at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)

at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)

--- End of inner exception stack trace ---

at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)

at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result)

1 个答案:

答案 0 :(得分:0)

当我们在与配置为使用较低版本的.NET的Web服务相同的应用程序池中运行.NET 4.0 Web应用程序时,我遇到了类似的问题。确保您没有在服务器上的同一应用程序池中混合ASP .NET版本。

Web服务器的事件查看器日志中是否显示任何错误或警告,以便为您提供有关该问题的更多信息?