IIS重新启动后WCF Web服务无法正常工作

时间:2013-11-12 14:08:19

标签: wcf iis-7.5

我在IIS 7.5上运行了一个Web服务

每当我重新启动此网站服务正在运行的IIS或网站的AppPool时,我都会收到以下错误消息。然后我发现,如果我更改了complilation版本(从4.5到4.0或者它是4.0到4.5)并保存web.config文件,那么它会定期开始工作。这真的很奇怪。请有人帮帮我。

的web.config:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5"/>
    <httpRuntime targetFramework="4.5"/>
  </system.web>
    <connectionStrings>
        <add name="NetDBEntities" connectionString="metadata=res://*/EFatura.csdl|res://*/EFatura.ssdl|res://*/EFatura.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=***********;initial catalog=*****;persist security info=True;user id=sa;password=***************;MultipleActiveResultSets=True;App=NSEfatLib&quot;" providerName="System.Data.EntityClient" />
    </connectionStrings>
    <system.serviceModel>
    <services>
        <service name="NSEfatLib.NSEfatEntryPoint">
        <endpoint address="Cari" binding="basicHttpBinding" bindingConfiguration=""
          name="Cari" contract="NSEfatLib.ICari" />
        <endpoint address="Stok" binding="basicHttpBinding" bindingConfiguration=""
          name="Stok" contract="NSEfatLib.IStok" />
        <endpoint address="FaturaIslemler" binding="basicHttpBinding"
          bindingConfiguration="" name="FaturaIslemler" contract="NSEfatLib.IFaturaIslemler" />
        <endpoint address="DefterIslemler" binding="basicHttpBinding"
          bindingConfiguration="" name="DefterIslemler" contract="NSEfatLib.IDefterIslemler" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <protocolMapping>
      <add binding="basicHttpsBinding" scheme="https"/>
    </protocolMapping>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <directoryBrowse enabled="true"/>
  </system.webServer>
</configuration>

错误讯息:

  

作为服务提供的类型'NSEfatLib.NSEfatEntryPoint'   ServiceHost指令中的属性值,或者在   配置元素   system.serviceModel / serviceHostingEnvironment / serviceActivations可以   找不到。描述:期间发生了未处理的异常   执行当前的Web请求。请查看堆栈跟踪   有关错误及其来源的更多信息   码。

     

异常详细信息:System.InvalidOperationException:类型   'NSEfatLib.NSEfatEntryPoint',作为Service属性值提供   在ServiceHost指令中,或在配置元素中提供   system.serviceModel / serviceHostingEnvironment / serviceActivations可以   找不到。

     

来源错误:

     

执行期间生成了未处理的异常   当前的网络请求。有关的来源和位置的信息   可以使用下面的异常堆栈跟踪来识别异常。

     

堆栈追踪:

     

[InvalidOperationException:类型'NSEfatLib.NSEfatEntryPoint',   作为ServiceHost指令中的Service属性值提供,   或在配置元素中提供   system.serviceModel / serviceHostingEnvironment / serviceActivations可以   找不到。]
  System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(字符串   constructorString,Uri [] baseAddresses)+122516
  System.ServiceModel.HostingManager.CreateService(字符串   normalizedVirtualPath,EventTraceActivity eventTraceActivity)+1451
  System.ServiceModel.HostingManager.ActivateService(ServiceActivationInfo   serviceActivationInfo,EventTraceActivity eventTraceActivity)+76
  System.ServiceModel.HostingManager.EnsureServiceAvailable(字符串   normalizedVirtualPath,EventTraceActivity eventTraceActivity)+901

     

[ServiceActivationException:服务'/Service.svc'不能   由于编译期间的异常而激活。例外   消息是:类型'NSEfatLib.NSEfatEntryPoint',提供为   ServiceHost指令中的服务属性值,或在其中提供   配置元素   system.serviceModel / serviceHostingEnvironment / serviceActivations可以   找不到..] System.Runtime.AsyncResult.End(IAsyncResult结果)   +650220 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult)   结果)+210733
  System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult的   ar)+282

事件日志条目:

  

System.ServiceModel.ServiceHostingEnvironment + HostingManager / 62476613   System.ServiceModel.ServiceActivationException:服务   由于期间的异常,无法激活'/Service.svc'   汇编。异常消息是:类型   'NSEfatLib.NSEfatEntryPoint',作为Service属性值提供   在ServiceHost指令中,或在配置元素中提供   system.serviceModel / serviceHostingEnvironment / serviceActivations可以   找不到.. ---&gt; System.InvalidOperationException:类型   'NSEfatLib.NSEfatEntryPoint',作为Service属性值提供   在ServiceHost指令中,或在配置元素中提供   system.serviceModel / serviceHostingEnvironment / serviceActivations可以   找不到。在   System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(字符串   constructorString,Uri [] baseAddresses)at   System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(字符串   normalizedVirtualPath,EventTraceActivity eventTraceActivity)at   System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(ServiceActivationInfo   serviceActivationInfo,EventTraceActivity eventTraceActivity)at   System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(字符串   normalizedVirtualPath,EventTraceActivity eventTraceActivity)---结束   内部异常堆栈跟踪--- at   System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(字符串   normalizedVirtualPath,EventTraceActivity eventTraceActivity)at   System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(字符串   relativeVirtualPath,EventTraceActivity eventTraceActivity)w3wp
  5028

1 个答案:

答案 0 :(得分:0)

有趣的是,在预编译Web服务时会触发上述错误。我试过这个服务定期运行(没有预先发布),问题不再出现了。

我在Web服务中使用了一个库,所以实际上Web服务本身根本没有任何代码。也许这就是原因。无论如何,因为没有代码,所以也没有预编译。