好吧,讓我們開始吧。 我通過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啓動時啓動,但不會。
我在互聯網上發現一些其他人有同樣的問題,仍然沒有解決。