2014-09-19 66 views
0

好吧,讓我們開始吧。 我通過Visual Studio 2012製作wcf服務並將其發佈到IIS 7.5中。 當我使用WCF測試客戶端時,該服務正在運行並運行良好。WCF發現只工作wcf服務叫做

要啓用UDP發現,我做了一些調整上的app.config如下:

<system.serviceModel> 
<services> 
    <service name="System_Core.wcf_service"> 
    <endpoint address="" binding="wsHttpBinding" contract="System_Core.IWCF_Service" /> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    <endpoint isSystemEndpoint="true" kind="udpDiscoveryEndpoint" /> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:8888" /> 
     </baseAddresses> 
    </host> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior> 
     <!-- To avoid disclosing metadata information, 
     set the values below to false before deployment --> 
     <serviceMetadata httpGetEnabled="False" httpsGetEnabled="False" /> 
     <!-- To receive exception details in faults for debugging purposes, 
     set the value below to true. Set to false before deployment 
     to avoid disclosing exception information --> 
     <serviceDebug includeExceptionDetailInFaults="True" /> 
     <serviceDiscovery /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

該文件也複製到web.config文件發佈時。總之,wcf服務本身運行良好。

問題是這樣的: 我做了另一個項目,需要發現網絡上的wcf服務。但該發現僅在第一次調用後才起作用,或者在瀏覽器中手動導航到.svc。當我在IIS7管理器中重新啓動IIS或wcf時,發現回到失敗/沒有收到任何響應。看起來wcf不是自動啓動的。我檢查IIS配置它自動啓動。該網站本身也設置爲自動啓動。我甚至把一些線路中的applicationHost.config基礎上,一些receommendation網站:

<site name="WCF" id="1" serverAutoStart="true"> 
      <application path="/" serviceAutoStartEnabled="true" > 
       <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\WCF" /> 
      </application> 
      <bindings> 
       <binding protocol="http" bindingInformation="*:8888:" /> 
      </bindings> 
     </site> 


<applicationPools> 
     <add name="DefaultAppPool" startMode="AlwaysRunning" managedRuntimeVersion="v4.0" /> 
     <add name="ASP.NET v4.0" managedRuntimeVersion="v4.0" /> 
     <add name="ASP.NET v4.0 Classic" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" /> 
     <applicationPoolDefaults> 
      <processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="false" /> 
     </applicationPoolDefaults> 
    </applicationPools> 

仍然沒有工作! IIS說它已經啓動了,Site說它已經開始了,但是發現仍然只在瀏覽器中手動調用服務.svc文件之後才起作用。當您重新啓動服務器或站點時,它將無法工作。我相信任何服務都應該在IIS啓動時啓動,但不會。

我在互聯網上發現一些其他人有同樣的問題,仍然沒有解決。

回答